Vérification format adresse Ip

Signaler
Messages postés
8
Date d'inscription
mercredi 21 octobre 2009
Statut
Membre
Dernière intervention
26 octobre 2009
-
Messages postés
8
Date d'inscription
mercredi 21 octobre 2009
Statut
Membre
Dernière intervention
26 octobre 2009
-
Bonjour j'ai ce programme qui permet, lorsque l'on rentre une adresse ip de vérifier si elle est valide mais il ne fonctionne pas. Il tourne mais compte une adresse Ip valide comme fausse.



'++Récupération du nom de l'ordinateur-----------------
Set wshShell = CreateObject( "Wscript.Shell" )
strOrdi = wshShell.ExpandEnvironmentStrings(InputBox("Saisir une adresse Ip", "Saisie"))




'Vérification Ip Valide




If strOrdi = "" Then
CheckIPFormat = False
else

i=1
pos = 0
Do until i=4
LastPos = pos + 1
Select Case i
Case 1, 2, 3: pos = InStr(LastPos, strOrdi, ".")
If pos <> 0 Then IPItem = Mid(strOrdi, LastPos, pos - LastPos)
'IPitem : Nombres séparés par les points
Case 4: IPItem = Mid(strOrdi, LastPos, Len(strOrdi) - pos)
End Select

For ii = 1 To Len(IPItem)
strbuf = Mid(IPItem, ii, 1)
If Asc(strbuf) < 48 Or Asc(strbuf) > 57 Then
Problem = True

Else
Problem = False
End If
Next

If (pos = 0) Or ((pos - LastPos) > 3) Or Problem _
Or Not ((Val(IPItem) < 256) And (Val(IPItem) >= 0)) Then
CheckIPFormat = False
else
CheckIPFormat = true
End If

i=i+1
Loop





end if







If checkIPFormat = False Then
reponse= MsgBox("Adresse Ip non valide",VBRetryCancel+vbExclamation,"Erreur de saisie")
end if


Select Case reponse

Case vbRetry
attentesb

Case vbCancel

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'mshta.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next

End Select


Helppp please

9 réponses

Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Messages postés
8
Date d'inscription
mercredi 21 octobre 2009
Statut
Membre
Dernière intervention
26 octobre 2009

j'ai essayé mais g pas réussi
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Tu as essayé quoi ? de lire ? et pas réussi quoi ? à lire ?

Montre ce que tu as essayé et pas réussi.
Messages postés
8
Date d'inscription
mercredi 21 octobre 2009
Statut
Membre
Dernière intervention
26 octobre 2009

J'avais essayé la méthode pas de la lire ;)

j'ai pas le code ici c'est à mon stage que je fais ça.
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Alors on va attendre que tu nous montres ce code (qui est en fait une expression régulière).
Tu ne perdras pas de temps, puisque c'est en stage "que tu fais çà" et que tu n'y es en ce moment pas.
Mais si tu changes d'avis (ce que tu peux faire largement car l'établissement d'une expression régulière ne nécessite aucun outil spécial autre que la réflexion et de l'application), tu peux nous montrer ici comment tu la rédigerais (y compris si ce n'est pas celle rédigée " à ton stage").
Messages postés
8
Date d'inscription
mercredi 21 octobre 2009
Statut
Membre
Dernière intervention
26 octobre 2009

Donc voila j'ai ça :
'++Récupération du nom de l'ordinateur-----------------
Set wshShell = CreateObject( "Wscript.Shell" )
strOrdi = wshShell.ExpandEnvironmentStrings(InputBox("Saisir une adresse Ip", "Saisie"))


'Vérification Ip Valide


Set myRegex = new Regex 
myRegex.Pattern = "([0-9]{1,3}\.){3}"


if myRegex.Test(strOrdi) <> True then
CheckIPFormat = False	
else 	
CheckIPFormat = True
end if



J'ai toujours mon checkIpFormat = false.
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Re...

Essaye donc avec l'une de ces deux là (établies à main levée et non testées) :

(?:[0-9]{1,3}\.){3}[0-9]{1,3}:[0-9]{2,5}


([0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}:?[0-9]{0,5})
Messages postés
8
Date d'inscription
mercredi 21 octobre 2009
Statut
Membre
Dernière intervention
26 octobre 2009

J'ai testé ça ne marchait pas mais je me suis rendu compte que j'avais marqué new Regex , j'ai vu sur un site qu'il fallait mettre RegexP

Et la ça à l'air de marcher.

Mais après rien ne se passe c'est très bizarre.
Messages postés
8
Date d'inscription
mercredi 21 octobre 2009
Statut
Membre
Dernière intervention
26 octobre 2009

J'ai réglé mon problème en utilisant une variable intermédiaire, je lui affecte strOrdi et la tout se passe bien.

Merci ;)