Script en vbs "ping IP Range" qui ne fonctionne pas [Résolu]

vincsilver - 8 oct. 2012 à 12:16 - Dernière réponse :  vincsilver
- 8 nov. 2012 à 09:53
Bonjour,

Je ne comprend pas pourquoi mon script ne s'arrête pas lorsque "intEndIP" est atteint.

Les valeurs "strSubnet", "intStartIP" et "intEndIP" sont bien pris en compte par le script.
Celui-ci début bien sur la première adresse IP saisie et correspondante à "strSubnet" + "intStartIP".
Soit dans mon script :
strComputer = strSubnet & strIP


Mais lorsqu'il arrive sur la dernière adresse IP demandée, le script continu en testant les adresses IP qui suivent sans prendre en compte :
Do Until x > intEndIP


J'ai remarqué que si je remplace
intEndIP EndIP par <gras>intEndIP 100</gras>
cela fonctionne.

Quelqu'un peut-il me dire d'où vient le problème ?
Merci par avance.

Voici mon script :
    'User Input of Network ip
    Message = "Please enter Network IP:" & chr(10) & chr(10) & _
      "Example: For 55.7.159.0/24" & chr(10) & _
      "Type '55.7.159.' whitout '0'"
    Title = "Network IP"
    Network = InputBox(Message, Title, "55.7.159." )
    strSubnet = Network
    'User Input of Start ip
    Message = "Please enter Start IP Range:" & chr(10) & chr(10) & _
      "Example: For 55.7.159.1" & chr(10) & _
      "Type '1'"
    Title = "Start Range"
    StartIP = InputBox(Message, Title, "1" )
    intStartIP = StartIP
    'User Input of End ip
    Message = "Please enter End IP Range:" & chr(10) & chr(10) & _
      "Example: For 55.7.159.255" & chr(10) & _
      "Type '255'"
    Title = "End Range"
    EndIP = InputBox(Message, Title, "255" )
    intEndIP = EndIP
    'Problème : Le script ne s'arrête pas lorsque intEndIP est atteind !!
    x = intStartIP
    Do Until x > intEndIP
       strIP = CStr(x)
          strComputer = strSubnet & strIP
       Set objWMIService = GetObject("winmgmts:\\.\root\cimv2" )
       Set colItems = objWMIService.ExecQuery _
           ("Select * from Win32_PingStatus " & _
               "Where Address = '" & strComputer & "'" )
        For Each objItem in colItems
          If objItem.StatusCode = 0 Then
    WScript.Echo (strComputer & " - Reply received." )
          Else
    WScript.Echo (strComputer & " - No Reply received." )
          End If
       Next
    x = x + 1
    Loop
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
vincsilver - 8 nov. 2012 à 09:53
3
Merci
Réponse ici : http://www.tek-tips.com/viewthread.cfm?qid=886788

Cdlt,
vincsilver

Merci vincsilver 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de vincsilver
vincsilver - 9 oct. 2012 à 16:13
0
Merci
J'ai essayer de convertir les valeurs "strSubnet", "intStartIP" et "intEndIP" en Integral avec la fonction CInt() mais pas d’amélioration :-(
Commenter la réponse de vincsilver

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.