kopolindo
10-11-2012, 14:50
Ciao, sto creando uno script che mi consenta di determinare se i nodi di una certa rete siano o meno ONLINE. Ma mi sto scontrando con un problema concettuale riguardante il ping.
Se pingo, p.es, 192.168.1.7 (macchina virtuale spenta) restituisce
Esecuzione di Ping 192.168.1.7 con 32 byte di dati:
Risposta da 192.168.1.2: Host di destinazione non raggiungibile.
Statistiche Ping per [B]192.168.1.7:
Pacchetti: Trasmessi = 1, Ricevuti = 1,
Persi = 0 (0% persi),
e questo per qualunque nodo OFFLINE
Considerando che l'IP della macchina dalla quale mando il ping è 192.168.1.2, non capisco come mai la risposta venga dalla MIA macchina.
Lo script è il seguente
@echo off
cls
::FILE DI LOG CHE USO PER SALVARE E LEGGERE I RISULTATI DEL PING
set log=%CD%\~tmplogping
if exist (%log%) del %log%
::PINGO SOLO 192.168.1.2 E 192.168.1.7
for %%i in (2,7) do (
echo ..........................
echo 192.168.1.%%i
echo ..........................
::MANDO UN SOLO PACCHETTO
ping 192.168.1.%%i -n 1 > %log%
::USO IL DELIMITATORE ":" E 2 TOKENS COSì DA CONTROLLARE SOLO LA RIGA CHE MI SERVE
for /F "delims=: tokens=1,2" %%A in (%log%) do (
::QUESTA RIGA è QUELLA "INTERESSANTE"
if "%%A" == "Risposta da 192.168.1.%%i" (
if "%%B" == " Host di destinazione non raggiungibile." echo 192.168.1.%%i = OFFLINE
if not "%%B" == " Host di destinazione non raggiungibile." echo 192.168.1.%%i ONLINE
)
)
)
pause
Se pingo, p.es, 192.168.1.7 (macchina virtuale spenta) restituisce
Esecuzione di Ping 192.168.1.7 con 32 byte di dati:
Risposta da 192.168.1.2: Host di destinazione non raggiungibile.
Statistiche Ping per [B]192.168.1.7:
Pacchetti: Trasmessi = 1, Ricevuti = 1,
Persi = 0 (0% persi),
e questo per qualunque nodo OFFLINE
Considerando che l'IP della macchina dalla quale mando il ping è 192.168.1.2, non capisco come mai la risposta venga dalla MIA macchina.
Lo script è il seguente
@echo off
cls
::FILE DI LOG CHE USO PER SALVARE E LEGGERE I RISULTATI DEL PING
set log=%CD%\~tmplogping
if exist (%log%) del %log%
::PINGO SOLO 192.168.1.2 E 192.168.1.7
for %%i in (2,7) do (
echo ..........................
echo 192.168.1.%%i
echo ..........................
::MANDO UN SOLO PACCHETTO
ping 192.168.1.%%i -n 1 > %log%
::USO IL DELIMITATORE ":" E 2 TOKENS COSì DA CONTROLLARE SOLO LA RIGA CHE MI SERVE
for /F "delims=: tokens=1,2" %%A in (%log%) do (
::QUESTA RIGA è QUELLA "INTERESSANTE"
if "%%A" == "Risposta da 192.168.1.%%i" (
if "%%B" == " Host di destinazione non raggiungibile." echo 192.168.1.%%i = OFFLINE
if not "%%B" == " Host di destinazione non raggiungibile." echo 192.168.1.%%i ONLINE
)
)
)
pause