Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2684 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  programmer des PING

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programmer des PING

n°2328921
aculy
Posté le 08-02-2019 à 15:26:23  profilanswer
 

Bonjour,
je cherche à créer un fichier/tableau de suivi pour des appareils sur mon réseau.
ils ont tous une IP fixe
aujourd'hui j'ai fait ceci

Code :
  1. @echo off
  2. echo test > "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  3. ping.exe 10.33.243.160 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  4. ping.exe 10.33.242.192 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  5. ping.exe 10.33.242.186 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  6. ping.exe 10.33.243.161 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  7. ping.exe 10.33.242.188 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  8. ping.exe 10.33.242.223 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  9. ping.exe 10.33.242.220 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  10. ping.exe 10.33.243.187 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  11. pause


j'ai un fichier qui s'écrase à chaque lancement du batch...
j'aimerais faire toujours la même chose mais en conservant plusieurs jours les infos
par ex dans un fichier "excel"
avec en colonne : IP/DATE/Heure/vu ou pas vu
et si possible tout automatiser....
 
je sais pas si je dois continuer en Batch ou faire du VBS ou Powershell (que je ne connais pas)...

mood
Publicité
Posté le 08-02-2019 à 15:26:23  profilanswer
 

n°2328926
aculy
Posté le 08-02-2019 à 16:15:10  profilanswer
 

j'ai recuperer un bout de code
pour du vbs mais cela plante
et idem je sais pas faire...

Code :
  1. 'Déclaration des Constantes Const ForReading 1, ForWriting 2, ForAppending = 8
  2. 'Déclaration des Objets
  3. Dim fso, srcFile, Ratio, Avance, strCheck, strMat0
  4. Err = 0
  5. Avance = 0
  6. 'Déclaration des Variables
  7. strFile = "AdStations.txt"
  8. strLog = "VerifStation.log"
  9. strTemp = "FileTemp.txt"
  10. strComputer = "."
  11. strCheck = 0
  12. 'Définition des objets
  13. Set fso = CreateObject("Scripting.FileSystemObject" )
  14. Set Shell = WScript.CreateObject("WScript.Shell" )
  15. 'Vérification que le fichier listing des Stations existe bien
  16. If Not (fso.FileExists(strFile)) Then
  17. MsgBox "Le fichier " & strFile & " n'existe pas!",4144, "Erreur"
  18. Wscript.quit
  19. End if
  20. Set srcFile = fso.OpenTextFile(strFile, ForReading, False)
  21. Set txtLog = fso.OpenTextFile(strLog, ForWriting, True)
  22. txtLog.WriteLine "================================================================================="
  23. txtLog.WriteLine "Vérification des Stations démarré le: " & Now()
  24. txtLog.WriteLine "Fichier de référence Station : " & strFile
  25. txtLog.WriteLine "-----------------------------------------------------------------------"
  26. Do While srcFile.AtEndOfStream <> True
  27. strMateriel = "Station"
  28. strLine = srcFile.ReadLine
  29. Shell.run "cmd /c ping -n 2 -w 20000 " & strLine & " > " & strTemp, 0, True
  30. strReponse = "Pas de réponse de la " & strMateriel & " -- ##"
  31. Analyz() If strCheck 1 Then strReponse strMateriel & " fonctionnelle"
  32. txtLog.WriteLine strLine & vbTab & "-" & vbTab & "-----> " & strReponse
  33. Loop
  34. srcFile.Close
  35. txtLog.WriteLine "-----------------------------------------------------------------------"
  36. txtLog.WriteLine "Vérification des Stations terminée le: " & Now()
  37. txtLog.WriteLine "================================================================================="
  38. txtLog.Close
  39. 'Consultation possible des Log
  40. Journal= MsgBox ("Vérification du système terminée." & vbcrlf & vbcrlf & "Consultation du journal ?",4132 ,"Rapport" )
  41. If Journal = 6 Then
  42. Return = Shell.Run ("%windir%\notepad.exe " & strLog, 3, TRUE)
  43. End if
  44. Set fso = Nothing
  45. Set Shell = Nothing
  46. Set txtLog= Nothing
  47. Set fileTemp = Nothing
  48. strComputer = ""
  49. strCheck = ""
  50. strFile = ""
  51. strReponse = ""
  52. strLog = ""
  53. strTemp = ""
  54. '============================================================'
  55. ' FONCTIONS '
  56. '============================================================'
  57. Function Analyz()
  58. set filTemp = fso.OpenTextFile(strTemp, ForReading, True)
  59. strCheck = 0
  60. Do Until filTemp.AtEndOfStream = True
  61. If InStr(filTemp.ReadLine, "octets=" ) > 0 Then
  62. strCheck = 1
  63. Exit Do
  64. End If
  65. Loop
  66. filTemp.Close
  67. Set DelFile = fso.GetFile(strTemp)
  68. DelFile.Delete
  69. End Function

n°2328928
rat de com​bat
attention rongeur méchant!
Posté le 08-02-2019 à 18:55:04  profilanswer
 

aculy a écrit :

j'ai un fichier qui s'écrase à chaque lancement du batch...
j'aimerais faire toujours la même chose mais en conservant plusieurs jours les infos

Le plus simple serait de changer le premier ">" en ">>" voire de rajouter la date du jour dans le fichier (je sais pas quelle est la commande exacte, j'ai plus Windows :o ).

n°2328946
Profil sup​primé
Posté le 09-02-2019 à 15:39:43  answer
 

%date% il me semble.

n°2328955
aculy
Posté le 10-02-2019 à 12:50:37  profilanswer
 

rat de combat a écrit :

 j'ai plus Windows

.
c'est possible ???
 
 :pt1cable:  

n°2328956
aculy
Posté le 10-02-2019 à 12:54:37  profilanswer
 


oui cela fonctionne en modifiant le code j'ai aussi mis l'heure du coup
 

Code :
  1. @echo off
  2. echo %date% >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  3. echo %time% >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  4. ping.exe 10.33.243.160 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  5. ping.exe 10.33.242.192 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  6. ping.exe 10.33.242.186 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  7. ping.exe 10.33.243.161 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  8. ping.exe 10.33.242.188 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  9. ping.exe 10.33.242.223 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  10. ping.exe 10.33.242.220 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  11. ping.exe 10.33.243.187 -n 1 >> "R:\06 - INFORMATIQUE\Interne SI\SI\IP_test.txt"
  12. pause

n°2328958
rat de com​bat
attention rongeur méchant!
Posté le 10-02-2019 à 14:09:00  profilanswer
 

aculy a écrit :

.
c'est possible ???
 
 :pt1cable:

Tu n'as jamais entendu parler de Linux??

n°2329047
aculy
Posté le 12-02-2019 à 15:59:13  profilanswer
 

j'ai baigné dans le monde microsoft depuis ma naissance....
surtout depuis win 3.11..
;-p

n°2329048
aculy
Posté le 12-02-2019 à 16:00:12  profilanswer
 

sinon sérieusement,
est ce que ce que je fais en batch peut se faire en powershell ?
car de là je pense que je pourrais extraire plus d'infos.
ex de ce que je cherche à faire
ping une liste d'adresse ip (fournit via un fichier texte par exemple que je peux modifier à volonté)
ressortir l'infos ping ok ou ko dans un simple fichier texte
exemple

  • 192.168.0.1 OK
  • 192.168.0.100 OK
  • 192.168.0.122 KO
  • 192.168.0.150 OK

le tout précédé de la date et l'heure.
 
le tout me permettant à la fin de créer mon fichier Excel
avec en tète de colonne
DATE/HEURE/IP/Statut


Message édité par aculy le 12-02-2019 à 16:05:36
n°2332934
aculy
Posté le 03-05-2019 à 17:39:59  profilanswer
 

j'ai découpé en 2....
un batch
 

Code :
  1. @echo off
  2. echo ---------------------------------------------- >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
  3. echo. >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
  4. echo %date% >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
  5. echo %time% >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
  6. ping.exe 10.33.243.160 -n 1 >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
  7. ping.exe 10.33.242.192 -n 1 >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
  8. ping.exe 10.33.242.186 -n 1 >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
  9. ping.exe 10.33.243.161 -n 1 >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
  10. ping.exe 10.33.242.188 -n 1 >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
  11. ping.exe 10.33.242.223 -n 1 >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
  12. ping.exe 10.33.242.220 -n 1 >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"
  13. ping.exe 10.33.243.187 -n 1 >> "R:\06 - INFORMATIQUE\G - PROJETS\Ping\IP_test.csv"


 
et du VBS qui lance le batch
 

Code :
  1. Option Explicit
  2. Dim WSHShell, Commande
  3. Set WSHShell = CreateObject("WScript.Shell" )
  4. Commande = chr(34) + "R:\06 - INFORMATIQUE\G - PROJETS\Ping\ping.bat" + chr(34)
  5. Do While true
  6. WSHShell.Run Commande
  7. Wscript.sleep 30000
  8. loop
  9. ' Set WSHShell = Nothing


 
cela fait a peut pres ce que je veux
MAIS
(car y a toujours des mais....)
le script lorsqu'il lance le batch ouvre une fenetre demandant à cliquer sur "executer" à chaque fois...
est ce qu'il n'y aurait pas moyen de supprimer cette confirmation à chaque lancement?
que je puisse faire un truc full automatique...

mood
Publicité
Posté le 03-05-2019 à 17:39:59  profilanswer
 

n°2332995
rufo
Pas me confondre avec Lycos!
Posté le 05-05-2019 à 09:50:47  profilanswer
 

C'est quoi l'intérêt de passer par du VBS pour la partie exécution :??: Pourquoi tu passes pas par le planificateur de tâches de Windows qui va lancer ton bat toutes les 30 secondes ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2333281
Je@nb
Kindly give dime
Posté le 08-05-2019 à 19:55:22  profilanswer
 

je crois que j'ai rarement un truc aussi inutile :/

n°2333283
rufo
Pas me confondre avec Lycos!
Posté le 08-05-2019 à 22:59:56  profilanswer
 

C'est pas comme si des outils de supervision n'existaient pas :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2333670
aculy
Posté le 17-05-2019 à 09:58:10  profilanswer
 

Merci pour vos aides
j'ai réussi à faire ce que je voulais en C#

Code :
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Net.NetworkInformation;
  4. using System.Linq;
  5. using System.Text;
  6. namespace Ping_RF
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             List<string> adresseIP = new List<string>(); //créer liste
  13.             string[] lines = System.IO.File.ReadAllLines(@"C:\Users\XXXXX\Documents\Ping\IP.txt" ); //chemin du fichier IP.txt
  14.             foreach (string line in lines) // remplir la liste
  15.             {
  16.                 adresseIP.Add(line);
  17.             }
  18.             foreach (string iplist in adresseIP)// afficher la liste
  19.             {
  20.                 string fichier = @"C:\Users\XXXXX\Documents\Ping\resultat.csv"; // chemin du fichier resultat.csv
  21.                 Ping pingSender = new Ping();
  22.                 PingOptions options = new PingOptions();
  23.                 options.DontFragment = true;
  24.                
  25.                 string data = new string('a', 32);
  26.                
  27.                 byte[] buffer = Encoding.ASCII.GetBytes(data);
  28.                
  29.                 int timeout = 120;
  30.                
  31.                 PingReply reply = pingSender.Send(iplist, timeout, buffer, options); // Ping des ip de la liste
  32.                 if (reply.Status == IPStatus.Success) // Ecrire le resultat dans un fichier
  33.                     {
  34.                         System.IO.File.AppendAllText(fichier, "Ping OK;" + iplist + ";" + DateTime.Now.ToString("dd/MM/yyyy HH:mm" ) + "\n" );
  35.                     }
  36.                 else
  37.                     {
  38.                         System.IO.File.AppendAllText(fichier, "Ping KO;" + iplist + ";" + DateTime.Now.ToString("dd/MM/yyyy HH:mm" ) + "\n" );
  39.                     }
  40.             }
  41.         }
  42.     }
  43. }


 
surement pas beau et optimisé mais c'est ma premiere appli C#
j'ai potassé internet et lu des cours pour faire ce petit outils
qui me convient
et fait tout ce dont j'ai besoin

Message cité 1 fois
Message édité par aculy le 17-05-2019 à 10:00:22
n°2333694
rat de com​bat
attention rongeur méchant!
Posté le 18-05-2019 à 15:34:56  profilanswer
 

aculy a écrit :

surement pas beau et optimisé mais c'est ma premiere appli C#
j'ai potassé internet et lu des cours pour faire ce petit outils
qui me convient
et fait tout ce dont j'ai besoin

Et c'est ça qui compte finalement. :o Bravo, tu as insisté et réussi à régler ton problème.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  programmer des PING

 

Sujets relatifs
Recherche professeur pour apprendre à programmer en JavaEveryday ping your prefered internet machine
Ordi portable pour programmer/coursping (Bot Discord)
Programmer les Macro Excel sur Visual studioProgrammer c++ et autre sous linux
un fichier d'historique des ping .csvLe serveur envoie un "ping" toute les minutes à tous les clients
Programmer un lecteur code barre arduino[Swift/iOS] Les ressources pour commencer à programmer
Plus de sujets relatifs à : programmer des PING


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR