analyse une adresse ip.
donne le classe de l'adresse ip, ainsi que divers renseignement.
et il traduit aussi l'adresse ip en binaire.
Source / Exemple :
Public Function CBin(ip_dec) As String
' initiatlisation des variables
Ip_Bin_001 = 0
IP_Bin_002 = 0
IP_Bin_003 = 0
IP_Bin_004 = 0
Ip_Bin_005 = 0
Ip_Bin_006 = 0
Ip_Bin_007 = 0
Ip_Bin_008 = 0
Reste = ip_dec
' pour le premier bit
If (ip_dec >= 128) Then
Ip_Bin_001 = 1
Reste = ip_dec - 128
Else
Ip_Bin_001 = 0
End If
' pour la 2ème
'MsgBox "Reste=" & Reste
If (Reste >= 64) Then
IP_Bin_002 = 1
Reste = Reste - 64
Else
IP_Bin_002 = 0
End If
' pour la 3ème
If (Reste >= 32) Then
IP_Bin_003 = 1
Reste = Reste - 32
Else
IP_Bin_003 = 0
End If
' pour la 4ème
If (Reste >= 16) Then
IP_Bin_004 = 1
Reste = Reste - 16
Else
IP_Bin_004 = 0
End If
' pour le 5ème
If (Reste >= 8) Then
Ip_Bin_005 = 1
Reste = Reste - 8
Else
Ip_Bin_005 = 0
End If
' pour le 6ème
If (Reste >= 4) Then
Ip_Bin_006 = 1
Reste = Reste - 4
Else
Ip_Bin_006 = 0
End If
' pour la 7ème
If (Reste >= 2) Then
Ip_Bin_007 = 1
Reste = Reste - 2
Else
Ip_Bin_007 = 0
End If
' pour la 8ème et dernière
If (Reste >= 1) Then
Ip_Bin_008 = 1
Reste = Reste - 1
Else
Ip_Bin_008 = 0
End If
' on concatène
CBin = Ip_Bin_001 & IP_Bin_002 & IP_Bin_003 & IP_Bin_004 & Ip_Bin_005 & Ip_Bin_006 & Ip_Bin_007 & Ip_Bin_008
End Function
Private Sub Btn_MSR_Click()
Select Case CInt(IP_Dec_01)
Case 1 To 126
MSR_Dec_01 = 255
MSR_Dec_02 = 0
MSR_Dec_03 = 0
MSR_Dec_04 = 0
Case 128 To 191
MSR_Dec_01 = 255
MSR_Dec_02 = 255
MSR_Dec_03 = 0
MSR_Dec_04 = 0
Case 192 To 223
MSR_Dec_01 = 255
MSR_Dec_02 = 255
MSR_Dec_03 = 255
MSR_Dec_04 = 0
End Select
End Sub
Public Function IsPrivate(IP_Dec_01, IP_Dec_02) As Boolean
Dim prive(10)
' prive(1) = "10."
' prive(2) = "172.16."
' prive(3) = "192.168."
' adr = "11.0.0.1"
' function qui va dire si l'adresse ip passé en paramètres est une adresse privée ou non
'MsgBox ("prive=" & prive(1) & " | ip_dec =" & ip_dec)
' strcomp --> -1 si adrese privée
' isegal = StrComp(adr, prive(1), 1)
' MsgBox ("isegal=" & isegal)
'par défaut, on met isprivate à faux
IsPrivate = False
Select Case CInt(IP_Dec_01)
Case 10
IsPrivate = True
Case 172
If CInt(IP_Dec_02) = 16 Then
IsPrivate = True
End If
Case 192
If CInt(IP_Dec_02) = 168 Then
IsPrivate = True
End If
End Select
' IsPrivate = isegal
End Function
'Public Function Nature(segment As Integer) As String
' Select Case segment
' Case 0
' Nature = "d'un réseau"
' Case 1 To 254
' Nature = "d'une carte réseau"
' Case 255
' Nature = "de Broadcast"
' End Select
'End Function
Private Sub Exe_Click()
Dim classe
Dim ip_dec
ip_dec = IP_Dec_01 & "." & IP_Dec_02 & "." & IP_Dec_03 & "." & IP_Dec_04
' Conversion de l'adresse Ip en binaire
IP_Bin_01 = CBin(IP_Dec_01)
IP_Bin_02 = CBin(IP_Dec_02)
IP_Bin_03 = CBin(IP_Dec_03)
IP_Bin_04 = CBin(IP_Dec_04)
' Conversion du masque de sous réseau en binaire
MSR_Bin_01 = CBin(MSR_Dec_01)
MSR_Bin_02 = CBin(MSR_Dec_02)
MSR_Bin_03 = CBin(MSR_Dec_03)
MSR_Bin_04 = CBin(MSR_Dec_04)
' pour les informations :
' pour la classe:
ipn = CInt(IP_Dec_01)
Select Case ipn
Case 1 To 126
classe = "A"
cl_deb = "1.0.0.1"
cl_fin = "126.0.0.254"
nb_ordi_possible = 16777214
Case 128 To 191
classe = "B"
cl_deb = "128.0.0.1"
cl_fin = "191.0.0.254"
nb_ordi_possible = 65534
Case 192 To 223
classe = "C"
cl_deb = "192.0.0.1"
cl_fin = "223.0.0.254"
nb_ordi_possible = 254
End Select
' Tableau contenant les adresses privés
Dim TabAdPri()
info = ""
' info = "Cette adresse est l'adresse " & Nature(IP_Dec_04) & "." & Chr(13)
info = info & "Cette adresse IP est de classe " & classe & "." & Chr(13)
info = info & FormatNumber(nb_ordi_possible, 0, 0, vbFalse) & " adresses maximum dans cette classe, "
info = info & "dont les adresses vont de " & cl_deb & " à " & cl_fin & "." & Chr(13)
privo = IsPrivate(IP_Dec_01, IP_Dec_02)
If privo = True Then
info = info & " C'est une adresse privée." & Chr(13)
Else
info = info & "C'est une adresse publique du réseau internet." & Chr(13)
End If
End Sub
Public Function ClasseDe(ip_dec) As Integer
Select Case ip_dec
Case 1 To 126
ClasseDe = "A"
Case 128 To 191
ClasseDe = "B"
Case 192 To 223
ClasseDe = "C"
End Select
End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.