verificar a resposta do ping - resultado inesperado

1

Estou executando isso no arquivo de lote do windows xp:

ping -n 3 10.1.1.2 >nul: 2>nul:
if %errorlevel%==0 (
    echo ping reply arrived        
) else (
    echo no ping reply.
)

em algum momento, parece que não recebo nenhuma resposta de ping, embora em uma janela de linha cmd paralela em execução

ping  10.1.1.2 -t

Estou checando de maneira errada?

    
por Doron 19.01.2012 / 11:53

1 resposta

1

Talvez reconsidere por que você está testando a conectividade (suponho que isso é o que você está fazendo?) dessa maneira. O ping não é um método confiável para determinar a conectividade de hosts:

  • Ping é ICMP e pode ter resultados diferentes em diferentes dispositivos de rede e, portanto, nem sempre é garantido que reaja da mesma maneira
  • Pode estar sendo limitado por uma taxa e, portanto, ocasionalmente não retornar resultados
  • Pacotes perdidos, latência ou perda geral de pacotes podem fazer com que um ping não retorne; pode até ser descartado por QoS
  • O Ping não descreve nada sobre o ambiente de roteamento ou qualquer outro problema que não seja de ponta a ponta / host

Talvez reconsidere o que você está tentando fazer? Se você nos der mais informações, tenho certeza de que podemos oferecer algumas sugestões mais confiáveis.

EDIT: O script em lote a seguir funciona para mim.

@echo off
ping -n 3 192.168.0.4 >nul: 2>nul:
if %ERRORLEVEL% EQU 0 (
    echo ok
) else (
    echo not ok
)
    
por 19.01.2012 / 12:11