ping auto d'une liste de PC (débutant)

ping auto d'une liste de PC (débutant) - Shell/Batch - Programmation

Marsh Posté le 08-09-2004 à 12:45:20    

Bonjour,
 
j'ai une liste de pc dans un fichier, comme ceci:
 
nom_machine ip_machine
nom_machine1 ip_machine1
...
 
je veux le lire, pinger la machine, et en fonction du résultat du ping, si on a 100% de perte, faire quelque chose (ecrire un fichier de logs, l'envoyer par mail, lancer le café pour quant j'arriverais dans la salle machines, formatter le disque dur ...  ;))
 
donc déjà, ce que j'ai fait :
 
-------------------------
@echo off
rem -je lit le fichier
for /F "tokens=1,2" %%a in (liste_serveurs.txt) do call :PING %%a %%b
goto :EOF
 
:PING
 @echo Pinging : %1%
 ping -w 10 %2 > tmp  
 rem - pas tres propre comme test
 findstr /C:"perte 100" tmp
 
 goto :EOF
-------------------------
 
le teste du findstr, ça marche, mais c'est sale. Si vous avez des idées là dessus ça m'arrangerais, histoire d'etre plus rigoureux. ou mieux, si je pouvais me passer de passer par un fichier tmp...
 
le vrai problème maintenant est : comment tester le resultat ?  
je voulais mettre ce que me renvoi findstr dans une variable et la tester. si elle est vide alors OK, sinon, KO...
 
any ideas ?
 
 

Reply

Marsh Posté le 08-09-2004 à 12:45:20   

Reply

Marsh Posté le 08-09-2004 à 13:02:59    

euh tu fais koi la ?
c carément pas terrible ton truc pourquoi tu prends pas tout simplement ton ip, tu la scan, et tu stock si elle a répondu ou pas dans un fichier ...
?? sinon je vois pas ce ke tu veux faire réexplique plz ??

Reply

Marsh Posté le 08-09-2004 à 13:12:54    

je dois verifier qu'une liste de machines dont je connais les ip répondent bien, et dans le cas ou elles répondent pas, faire quelque chose, comme l'ecrire dans un fichier de log
 
 
en gros, mon probleme, c'est le "la machine a répondu ou pas"...
je n'arrive pas a isoler proprement les deux cas, a faire mon test.

Reply

Marsh Posté le 08-09-2004 à 13:23:01    

je peux te proposer un batch perso ki ping une plage d'ip et affiche le résultat connecté et pas connecté dans un txt

Reply

Marsh Posté le 08-09-2004 à 13:34:33    

et bien je prends ! :)

Reply

Marsh Posté le 08-09-2004 à 13:38:04    

bon en fait il se compose de plusieurs batch qui intéragissent  entre eux le premier c scanip.bat:
@echo off
 cls
 
set ip=
set /p ip=quel plage d'ip voulez-vous scanner (3 premiers champs- x.x.x) ?
if not '%ip%'=='' set choice=%ip:~0%
 
 :top
echo 1. scan 1-10
echo 2. scan 1-50
echo 3. scan 1-100
echo 4. scan 1-254
 set choice=
 set /p choice=quel est votre choix ?
 if not '%choice%'=='' set choice=%choice:~0,1%
  if '%choice%'=='1'  goto suite1
  if '%choice%'=='2'  goto suite2
  if '%choice%'=='3'  goto suite3
  if '%choice%'=='4'  goto suite4
  echo Le choix %choice% n'est pas valide.
 echo.
 goto top
 
:suite1
set taille=10
goto end
:suite2
set taille=50
goto end
:suite3
set taille=100
goto end
:suite4
set taille=254
goto end
 
:end
echo resultats:>c:\scanip\scanresults.txt
echo resultats:>c:\scanip\goodresults.txt
echo resultats:>c:\scanip\partages.txt
 
echo hostname:>c:\scanip\hostname.txt
 
for /l %%i in (1,1,%taille%) do (
 
set var=%%i%
 
start scanengine.bat
ping -n 1  127.0.0.1
 
)
ping -n 3  127.0.0.1
 
 
start pluginmsg.bat
arp -a>c:\scanip\macaddress.txt
 
exit
 
 
 
 

Reply

Marsh Posté le 08-09-2004 à 13:38:33    

le deuxieme c scanengine.bat
@echo off
 
  PING -n 1 %ip%.%var% |FIND "TTL" > NUL
  IF NOT ERRORLEVEL 1 GOTO ok
  ECHO 10.2.24.%var% disconnect>>c:\scanip\scanresults.txt
  goto end
   
  :ok
  ping -n 1 %ip%.%var% |find "TTL=64" > nul
  IF NOT ERRORLEVEL 1 GOTO msg1
  net view %ip%.%var% |FIND "est vide" > NUL
  if not errorlevel 1 goto msg1
  ECHO %ip%.%var% Connect avec partages
  ECHO %ip%.%var% Connect avec partages>>c:\scanip\scanresults.txt
  ECHO %ip%.%var% Connect avec partages>>c:\scanip\goodresults.txt
  rem start pluginavert.bat
  start pluginscanhostname.bat
  goto fin
 
  :msg1
  ECHO %ip%.%var% Connect sans partage>>c:\scanip\scanresults.txt
  ECHO %ip%.%var% Connect sans partage>>c:\scanip\goodresults.txt
  start pluginscanhostname.bat
  goto end
 
  :end
exit
 
  :fin
net view %ip%.%var% >>c:\scanip\partages.txt
 
exit

Reply

Marsh Posté le 08-09-2004 à 13:39:08    

et éventuellement tu peux rajouter le pluginmsg.bat
@echo off
echo ----------------------------------------
echo ordinateur(s) connecte(s):  
type c:\scanip\goodresults.txt
echo retrouvez tous ces resultats dans:  
echo c:\scanip\
echo scanresults.txt  
echo goodresults.txt
echo partages.txt
echo hostname.txt
echo ----------------------------------------

Reply

Marsh Posté le 08-09-2004 à 13:40:50    

ok je teste

Reply

Marsh Posté le 08-09-2004 à 13:41:08    

il faut ke tu crée le rep c:\scanip g oublié de mettre le mkdir

Reply

Marsh Posté le 08-09-2004 à 13:41:08   

Reply

Marsh Posté le 08-09-2004 à 13:48:34    

j'avais vu :)
violent quant il se met en route :)

Reply

Marsh Posté le 08-09-2004 à 14:04:48    

c pour aller le plus vite possible si je tempo de trop c infernal

Reply

Marsh Posté le 08-09-2004 à 14:51:24    

ok
j'ai trouvé dans ton code ce qui m'interressait pour faire le test.  
je te remercie.

Reply

Marsh Posté le 08-09-2004 à 15:16:02    

de rien

Reply

Marsh Posté le 24-11-2004 à 10:22:46    

DOD_edge a écrit :

le deuxieme c scanengine.bat
@echo off
 
  PING -n 1 %ip%.%var% |FIND "TTL" > NUL
  IF NOT ERRORLEVEL 1 GOTO ok
  ECHO 10.2.24.%var% disconnect>>c:\scanip\scanresults.txt
  goto end
   
  :ok
  ping -n 1 %ip%.%var% |find "TTL=64" > nul
  IF NOT ERRORLEVEL 1 GOTO msg1
  net view %ip%.%var% |FIND "est vide" > NUL
  if not errorlevel 1 goto msg1
  ECHO %ip%.%var% Connect avec partages
  ECHO %ip%.%var% Connect avec partages>>c:\scanip\scanresults.txt
  ECHO %ip%.%var% Connect avec partages>>c:\scanip\goodresults.txt
  rem start pluginavert.bat
  start pluginscanhostname.bat
  goto fin
 
  :msg1
  ECHO %ip%.%var% Connect sans partage>>c:\scanip\scanresults.txt
  ECHO %ip%.%var% Connect sans partage>>c:\scanip\goodresults.txt
  start pluginscanhostname.bat
  goto end
 
  :end
exit
 
  :fin
net view %ip%.%var% >>c:\scanip\partages.txt
 
exit


 
Salut DOD_edge,
 
je voulais savoir ce qu'il y avait dans les fichiers
     pluginavert.bat
   et
     pluginscanhostname.bat
 
car en lançant la procédure, il m'indique que le 2ème n'existe pas.
 
Peux-tu les mettre aussi à dispo?
 
Merci d'avance...

Reply

Marsh Posté le 29-11-2004 à 11:17:22    

En fait pas grand chose mon scrip me permait d'automatiser un envoi de messages aux users qui ont des partages actifs via le pluginavert.bat et de tenter de résoudre les noms d'hotes via le pluginscanhostname.bat si tu les veux le peux mettre les codes ...

Reply

Marsh Posté le 25-06-2007 à 09:48:57    

moi je les veut bien...


---------------

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed