Fonction pour valider le format d'une adresse ip

Contenu du snippet

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....

A voir également

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.