Em uma máquina com Windows 7, sigo um endereço IP de uma máquina desligada.
C:\>ping 192.168.1.222
Pinging 192.168.1.222 with 32 bytes of data:
Reply from 192.168.1.222: Destination host unreachable.
Reply from 192.168.1.222: Destination host unreachable.
Reply from 192.168.1.222: Destination host unreachable.
Ping statistics for 192.168.1.222:
Packets: Sent = 3, Received = 3, Lost = 0 (0% loss)
Mesmo que não haja nenhuma resposta, o errorlevel está definido para 0
.
O que estou tentando fazer é descobrir se uma máquina remota está respondendo ao ping. Um dos meus testes é desligar a máquina e executar ping. Por alguma razão, o ping define o nível de erro como 0
.
-w
switch para 2999 contra um IP válido e inválido, adicionando o-n 1
switch também. Parece funcionar.Isso ocorre porque o destino está na sua sub-rede local. Se o destino estiver fora da sua sub-rede local, o esperado
Request timed out.
será visto. No entanto, até destinos inexistentes na sua sub-rede local serão relatadosReply from x.x.x.x: Destination host unreachable.
. Como esta publicação do whirlpool explica, tudo depende se é o primeiro salto que atingiu o tempo limite - e executar ping na sub-rede local é apenas um salto. Aparentemente, é por design que o nível de erro é definido para0
quando qualquer resposta é recebida ehost unreachable
conta como resposta.Soluções alternativas
Analisando a
ping
saída comfindstr
Fonte: http://forums.techguy.org/7318331-post3.html
A seguir, o ping será feito uma vez (
ping -n 1
). O%1
é o primeiro parâmetro passado para o arquivo em lotes. A variávelattrib
é definida dependendo se o destino responde ou não.Utilitário separado
Há um utilitário interessante chamado vivo . Eu não tentei e foi lançado em 2002, portanto, talvez nem funcione no Windows 7. No entanto, se funcionar, definirá o nível de erro como 2 quando o host de destino estiver inacessível. Eu realmente não recomendaria isso, no entanto.
fonte
alive
, usado há muitos anos também, por esse mesmo motivo./C
sequência de pesquisa). Dificilmente vale um voto negativo. Como já alterei a resposta, obrigado por apontar isso.Isso funciona para mim no Windows 7:
fonte