Назад | Перейти на главную страницу

проверка ответа на пинг - неожиданный результат

Я запускаю это в пакетном файле Windows XP:

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

иногда кажется, что я не получаю ответа на пинг, хотя в параллельном окне командной строки запущено

ping  10.1.1.2 -t

Я неправильно проверяю?

Возможно, еще раз подумайте, почему вы тестируете возможность подключения (я предполагаю, что вы это делаете?) Таким образом. Ping не является надежным методом определения подключения хостов:

  • Ping - это ICMP, и он может иметь разные результаты на разных сетевых устройствах, поэтому не всегда гарантируется, что он будет реагировать одинаково.
  • Это могло быть ограничено по скорости и поэтому иногда не возвращало результатов
  • Отброшенные пакеты, задержка или общая потеря пакетов могут привести к тому, что эхо-запрос не вернется; его даже можно сбросить с помощью QoS
  • Ping ничего не описывает о среде маршрутизации или каких-либо проблемах, кроме end to end / host

Возможно, пересмотрите то, что вы пытаетесь сделать? Если вы дадите нам больше информации, я уверен, что мы сможем предложить более надежные предложения.

EDIT: у меня работает следующий пакетный скрипт.

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