Cette fonction sert à vérifier si une chaine entrée est une adresse IP valide.
Exemple: pour 500.123.0.0 , eer.123.152.123 elle revoie False.
Source / Exemple :
Public Function CheckIPFormat(IP As String, Optional CanPop As Boolean = False) As Boolean
Const msgIPFormat = "Une adresse IP doit être du format 'nombre.nombre.nombre.nombre' " _
& vbCr & "où 'nombre' est un entier d'au plus 3 chiffres variant de 0 à 255."
Dim strbuf$, i%, ii%, pos%, LastPos%, IPItem$, Problem As Boolean
If IP = "" Then
CheckIPFormat = False
Exit Function
Else
pos = 0
For i = 1 To 4
LastPos = pos + 1
Select Case i
Case 1, 2, 3: pos = InStr(LastPos, IP, ".")
If pos <> 0 Then IPItem = Mid(IP, LastPos, pos - LastPos)
'IPitem : Nombres séparés par les points
Case 4: IPItem = Mid(IP, LastPos, Len(IP) - pos)
End Select
'Rien que des chiffres
For ii = 1 To Len(IPItem)
strbuf = Mid(IPItem, ii, 1)
If Asc(strbuf) < 48 Or Asc(strbuf) > 57 Then
Problem = True
Exit For
Else: Problem = False
End If
Next ii
'Pos=0 :pas de "." dans la chaine ex: "125125"
'pos-lastpos >3 : nombre trop long ex: "1251.12.12.1"
'Problem : Pas rien que des chiffres ex: "12a.12.12.1"
If (pos = 0) Or ((pos - LastPos) > 3) Or Problem _
Or Not ((Val(IPItem) < 256) And (Val(IPItem) >= 0)) Then
If CanPop Then MsgBox msgIPFormat, vbOKOnly, "Mauvaise adresse IP"
CheckIPFormat = False
Exit Function
End If
Next i
CheckIPFormat = True
End If
End Function 'CheckIPFormat
Conclusion :
Ben, je l'ai fait de toutes pièces ... Vos remarques....
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.