Vérification format adresse Ip

PtiPiwi Messages postés 8 Date d'inscription mercredi 21 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009 - 23 oct. 2009 à 17:31
PtiPiwi Messages postés 8 Date d'inscription mercredi 21 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009 - 26 oct. 2009 à 11:58
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

jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
23 oct. 2009 à 18:01
0
PtiPiwi Messages postés 8 Date d'inscription mercredi 21 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
23 oct. 2009 à 18:43
j'ai essayé mais g pas réussi
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
23 oct. 2009 à 18:49
Tu as essayé quoi ? de lire ? et pas réussi quoi ? à lire ?

Montre ce que tu as essayé et pas réussi.
0
PtiPiwi Messages postés 8 Date d'inscription mercredi 21 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
23 oct. 2009 à 19:06
J'avais essayé la méthode pas de la lire ;)

j'ai pas le code ici c'est à mon stage que je fais ça.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
23 oct. 2009 à 19:13
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").
0
PtiPiwi Messages postés 8 Date d'inscription mercredi 21 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
26 oct. 2009 à 10:01
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.
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
26 oct. 2009 à 11:04
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})
0
PtiPiwi Messages postés 8 Date d'inscription mercredi 21 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
26 oct. 2009 à 11:47
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.
0
PtiPiwi Messages postés 8 Date d'inscription mercredi 21 octobre 2009 Statut Membre Dernière intervention 26 octobre 2009
26 oct. 2009 à 11:58
J'ai réglé mon problème en utilisant une variable intermédiaire, je lui affecte strOrdi et la tout se passe bien.

Merci ;)
0
Rejoignez-nous