PtiPiwi
Messages postés8Date d'inscriptionmercredi 21 octobre 2009StatutMembreDernière intervention26 octobre 2009
-
23 oct. 2009 à 17:31
PtiPiwi
Messages postés8Date d'inscriptionmercredi 21 octobre 2009StatutMembreDernière intervention26 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
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 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").
PtiPiwi
Messages postés8Date d'inscriptionmercredi 21 octobre 2009StatutMembreDernière intervention26 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