L'astuce consiste à trouver dans les réposes retournées un mot clé permettant de déterminer si la machine pépond
il faut envisager les cas suivants :
la machine répond
la machine ne répond pas
la passerelle répond que l'hote est injoignable...
Cette dernière possibilité interdit de chercher le mot "Reply"
On peut donc chercher le mot "bytes=" qui n'apparait que dans le cas d'une réponse
La commande DOS a faire est donc :
ping.exe POTES | find /I "bytes=" |
ce qui pose un gros problème :
il faut passer en paramètre les caractères "guillemet" sans qu'ils soient interprétés. On passe alors leur code ASCI : 34
Deuxième problème : le caractère | n'est pas connu de schell.run. Il faut donc passer par un shell DOS pour pouvoir l'utiliser :
cmd /c ping.exe ... | find ...
Au final ça donne :
POTES="lluxstse6999"
set WshShell = CreateObject ("Wscript.shell" )
PINGIT="cmd /c ping.exe " & POTES & " | find /I " & CHR(34) & "bytes=" & CHR(34)
PING = WshShell.Run(PINGIT,1,TRUE)
Msgbox "Resultat du Ping = " & PING |
Je crois que là on est bon.
---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...