Validiter d'une adresse ip

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 810 fois - Téléchargée 38 fois

Contenu du snippet

Sa sert tout simplement a savoir si l'adresse IP est valide, elle vérifie la syntax ainsi que la validité des chiffre qui y sont entrer. (0 to 255)

Source / Exemple :


Public Function ValideIP(Texte As String) As Boolean
On Error GoTo MarchePas
Dim Br1 As String, Br2 As String, Br3 As String, Br4 As String
If InStr(Texte, ".") = 0 Then ValideIP = False: Exit Function 'Si ya aucun point sa vaux pas la peine de faire au complet
    Br1 = Mid(Texte, 1, InStr(Texte, ".") - 1) 'Détection du premier nombre
    Br2 = Mid(Texte, Len(Br1) + 2, (Len(Texte) - InStr(Texte, ".")) + 1)    'Détection du 2ème nombre
    Br2 = Left(Br2, InStr(Br2, ".") - 1)
    Br3 = Mid(Texte, Len(Br1) + Len(Br2) + 3, Len(Texte)) 'Détection du 3ème nombre
    Br3 = Left(Br3, InStr(Br3, ".") - 1)
    Br4 = Mid(Texte, Len(Br1) + Len(Br2) + Len(Br3) + 4, Len(Texte)) 'Détection du 4ème nombre
    If IsNumeric(Br1) = False Or IsNumeric(Br2) = False Or IsNumeric(Br3) = False Or IsNumeric(Br4) = False Then ValideIP = False: Exit Function 'Ici on détecte si c'est bien numérique
    If Not (CInt(Br1) >= 0 And CInt(Br1) <= 255) Or Not (CInt(Br2) >= 0 And CInt(Br2) <= 255) Or Not (CInt(Br3) >= 0 And CInt(Br3) <= 255) Or Not (CInt(Br4) >= 0 And CInt(Br4) <= 255) Then ValideIP = False: Exit Function 'Ensuite on regarde si elle correspond entre 0 et 255
ValideIP = True 'C'est parfait le IP !!!
Exit Function
MarchePas:
ValideIP = False 'Si ya une erreur, le IP est pas valide
End Function

Conclusion :


Un petit commentaire ?

A voir également

Ajouter un commentaire Commentaires
Messages postés
11
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
4 septembre 2006

Un bon conseil, au lieu de faire des Mid,Left et Right dans tous les sens : la fonction Split fait merveille dans un code comme celui-ci.
Messages postés
112
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
13 mars 2004

kler ;) merci d'avance
Messages postés
2
Date d'inscription
lundi 6 janvier 2003
Statut
Membre
Dernière intervention
23 février 2003

on prefere
Messages postés
71
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
11 novembre 2004

si vous preferez, je peux poster une source, au lieu de mettre dans un comment. Faites moi savoir ce que vous preferez.
Messages postés
71
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
11 novembre 2004

'J'avais besion de cette source, mais en plus ameliorée
'il me fallait que ca verifie le port, si il y'en a un.
'Donc, je l'ai naturelement ameliorée. La voici :
' (copiez le code dans une form vide pour tester)
'____________________________________________________________

Private Sub Form_Load()
msgbox ValideIP("212.239.196.86:4662") 'Affiche un msgbox avec False si invalide, True si valide
End Sub

Public Function ValideIP(Texte As String) As Boolean
Dim Br1 As String, Br2 As String, Br3 As String, Br4 As String, BrPort As String 'Declaration de vaiables
If InStr(Texte, ":") <> 0 Then 'Recherche si un port est present, si oui, met le port dans la variable "brport" et l'ip normale dans texte2, sinon, copie texte dans text2
BrPort = Mid(Texte, InStr(Texte, ":") + 1, Len(Texte) - InStr(Texte, ":") + 1) 'Decoupe l'ip en 2 : BrPrt pour le port
Texte2 = Mid$(Texte, 1, Len(Texte) - (Len(Texte) - InStr(Texte, ":") + 1)) ' et texte2 pour l'ip sans le port
ElseIf InStr(Texte, ":") = 0 Then ' Si port pas present, alors simplement met texte dans texte2
Texte2 = Texte
End If

If InStr(Texte2, ".") 0 Then ValideIP False: Exit Function 'Decoupe chaque partie de l'ip normale
Br1 = Mid(Texte2, 1, InStr(Texte2, ".") - 1)
Br2 = Mid(Texte2, Len(Br1) + 2, (Len(Texte2) - InStr(Texte2, ".")) + 1)
Br2 = Left(Br2, InStr(Br2, ".") - 1)
Br3 = Mid(Texte2, Len(Br1) + Len(Br2) + 3, Len(Texte2))
Br3 = Left(Br3, InStr(Br3, ".") - 1)
Br4 = Mid(Texte2, Len(Br1) + Len(Br2) + Len(Br3) + 4, Len(Texte2))

If IsNumeric(Br1) False Or IsNumeric(Br2) False Or IsNumeric(Br3) = False Or IsNumeric(Br4) = False Then ValideIP = False: Exit Function 'Verifie si ce sont bien des chiffres
If Not (CInt(Br1) >= 0 And CInt(Br1) <= 255) Or Not (CInt(Br2) >= 0 And CInt(Br2) <= 255) Or Not (CInt(Br3) >= 0 And CInt(Br3) <= 255) Or Not (CInt(Br4) >= 0 And CInt(Br4) <= 255) Then ValideIP = False: Exit Function 'Verifie si ils sont inferieurs à 255
ValideIP = True 'Ok, c bon
If BrPort <> "" Then 'nom verifie le port, si il y'en a un
If IsNumeric(BrPort) False Then ValideIP False 'numerik ou pas ?
If Val(BrPort) >= 0 And Val(BrPort + 1 & "a") <= 65536 Then ValideIP = True Else ValideIP = False 'Compris entre 6556 et 0 ?
End If
Exit Function 'Quite la fonction

MarchePas: 'Si erreur, alors va ici
ValideIP = False
End Function

'____________________________________________________________
Afficher les 6 commentaires

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.