PDA

View Full Version : [BATCH] Ping Windows7


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

demos88
11-11-2012, 00:05
Il ping è un programma dello strato applicazione dei protocolli di comunicazione e si basa sugli strati inferiori per lavorare.
Se tu provi a pingare un server offline, non sarà la macchina remota a dirti che il ping fallisce (ovvio, la macchina stessa è offline!) ma sarà la stessa macchina di partenza, a uno strato inferiore (IP) a dirti che quell'IP non è raggiungibile.
La risposta di host non raggiungibile arriva da uno strato inferiore della stessa macchina da cui effettui il ping.