Resultat d'un ping vers un fichier log [Résolu/Fermé]

Signaler
Messages postés
14
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
23 janvier 2013
-
 Bupi -
Bonjour a tous.

En fait, je suis en stage dans une entreprise, et il y a une liaison radio.
2 bâtiments a 100 mètres l'un de l'autre sont reliés par des antennes.

Cependant, la connexion arrête pas de couper, on ne sait pourquoi.

J'aimerais créer un batch qui lance un ping d'une des antennes, et le résultats s'afficherait dans un fichier .log avec la date et l'heure de chaque ping.

Ça me permettrait de voir la fréquence des coupures.

Merci d'avance pour votre aide.

10 réponses

Messages postés
23761
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 917
Ayaaaaaiiiis !

Tu enregistres ces lignes dans un fichier avec l'extension .vbs (mon exemple c'est c:\save\test-ping.vbs):
strMachines = "99.99.15.1;99.99.99.99"
aMachines = split(strMachines, ";")
Set objFichier=CreateObject("Scripting.FileSystemObject")
Set MyFile= objFichier.OpenTextFile("c:\save\resu-ping.txt", 8,true)
do while true
    For Each machine in aMachines
        Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
            ExecQuery("select * from Win32_PingStatus where address = '"_
                & machine & "'")
        For Each objStatus in objPing
            If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
                Myfile.WriteLine date & "-" & time & " Machine " & machine & " non joignable"
            End If
        Next
    Next
    wscript.sleep(10000)
loop
MyFile.Close
La première ligne, ce sont les @IP des machines que tu veux pingger, séparées par des ;
La quatrième ligne, c'est le nom du fichier dans lequel on va écrire (en ajout à la fin, à chaque fois)
La ligne wscript.sleep(10000), c'est pour attendre 10 secondes avant de retenter les ping.

Ca n'écrit dans le fichier que lorsqu'une machine est injoignable, mais on peut écrire tout le temps, faut juste modifier :-)

Ensuite, tu crées un fichier .bat avec une seule ligne :
cscript //nologo c:\save\test-ping.vbs
Tu lances ce fichier .bat en double-cliquant dessus, ça ouvre une fenêtre DOS, et ça tourne jusqu'à ce que tu breakes avec un CTRL-C...

C'est tout.

Faudra juste pas oublier d'aller voir les résultats dans le fichier ;-)
7
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Merci bcp pour ce code.
Messages postés
23761
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 917
Salut,

tu crées un bat avec une ligne pour changer le prompt, et mettre la date et heure genre 'PROMPT $D a $T $_', tu passes ta commande de ping et tu rediriges tout ça vers un fichier.

ex :

PROMPT $D a $T $_ (ça affiche la date et l'heure)
for /L %A in (1,1,1000) do ping xxxxxx >>toto.log (ça fait le ping 1000 fois et ça met le résultat dans le fichier toto.log, sans écraser ce qui existe déjà)
Messages postés
14
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
23 janvier 2013
1
ok super
Merci beaucoup blux pour ton aide et le temps consacré.

bonne journée
Messages postés
671
Date d'inscription
mardi 6 mars 2007
Statut
Membre
Dernière intervention
25 janvier 2011
282
salut,
dans ton bat tu met ping avec les options voulus puis tu envoie le resultat
soit ping/option > fichier.log
soint fichier.bat (contenant tes commandes):
fichier.bat > fichier.log
enfin je me suis fais devancé :-)) et l'autre réponse est meilleure
Messages postés
14
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
23 janvier 2013
1
merci pour vos reponses
on peut a la place de 1000 ping faire un ping -t xxx.xxx.xxx.xxx ???

par contre ça me cree bien mon fichier.log mais ça ne m'affiche pas l'heure dedans.
Ca me laisse la fenetre DOS ouverte

https://www.hiboox.com
Messages postés
23761
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 917
L'option -t sert à dire combien de temps tu attends avant de considérer que le distant ne répond pas, en aucun cas, c'est un paramètre d'attente entre deux commandes.

Je vais voir pour l'affichage des dates...

Mais tu sais qu'il existe des outils freewares qui font un scan périodique d'ip et qui mettent les résultats dans des fichiers ?

https://www.snapfiles.com/get/mhostalive.html
https://www.snapfiles.com/get/pinglog.html
Messages postés
14
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
23 janvier 2013
1
ok je vais voir ça merci
il y en a un que je connaissais, mais bon il me manque toujours l'heure dans le log.
Je n'ai pas d'autres moyens pour repérer une coupure...

j'avais vu que l'option -t c'est pour effectuer le ping sans interruption.
Comme ça je peux le laisser tourner une nuit et je l'arrete quand je reviens.
Sinon tu as mis 1000, mais je ne sais pas combien il en faudrait pour 12 ou 13h...
Messages postés
23761
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 917
On peut sans doute aller plus vite avec du vbscript :

http://www.cruto.com/...
Messages postés
14
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
23 janvier 2013
1
euh la je suis pomé après... ^^
c'est quoi comme extension ça???
en tout cas merci pour tes réponses blux, je vais me débrouiller avec tout ça.
bonne journée
Messages postés
23761
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 917
Je suis en train de te faire ça, si tu peux attendre 1/2h ou 1h...
Messages postés
1
Date d'inscription
mercredi 21 décembre 2011
Statut
Membre
Dernière intervention
21 décembre 2011

Bonjour à tous,
j'ai besoin d'utiliser ce script, mais il ne fonctionne pas sous WindowsNT, je souhaite renseigner un fichier log dans le cas ou le PC ne dialogue plus avec le serveur, le vbs si dessus fonctionne très bien sous XP et w7 mais pas sous windowsNT, si il y a une autre solution merci de me conseiller.