Мне нужно работать со скриптом, который использует команду ping
с обычным синтаксисом Linux, ни пакет Cygwin по умолчанию, ни утилита Windows ping не подойдут. На данный момент я исправил сценарий для использования версии Windows (с некоторыми трудностями; исполняемый файл Windows не предоставляет полезных кодов возврата, поэтому мне нужно проанализировать вывод), но я бы хотел совместимость коробки и дополнительные возможности Linux ping. Прежде чем продолжить, позвольте мне заявить, что я запускаю Cygwin в режиме администратора; это не проблема привилегий. Это проблема версий.
Команда ping
по умолчанию в Cygwin указана как версия 1.0-1 в диспетчере установки в пакете «ping: базовый сетевой инструмент для проверки подключения к IP-сети». Без аргументов выводит:
Usage: ping [-dfqrv] host [packetsize [count [preload]]]
и описание man-страницы начинается с «Интернет DARPA - это большое и сложное объединение сетевого оборудования», что для меня выглядит более чем устаревшим. Это версия, установленная в /bin/ping
.
Команда ping
Windows находится в $SYSTEMROOT/system32/ping
и выводит следующее сообщение при вызове без параметров.
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] target_name
Это, безусловно, более многофункциональный пинг (в частности, он включает тайм-ауты, что важно для меня), но это не та версия, которая доступна в современной установке Linux:
ping [ -LRUbdfnqrvVaAB] [ -c count] [ -i interval] [ -l preload] [ -p pattern]
[ -s packetsize] [ -t ttl] [ -w deadline] [ -F flowlabel] [ -I interface]
[ -M hint] [ -Q tos] [ -S sndbuf] [ -T timestamp option] [ -W timeout]
[ hop ...] destination
задокументировано онлайн здесь. Я не могу найти ссылки на версию ping для Cygwin, за исключением ссылки на Cygwin.
Я нашел эту древнюю ветку электронной почты, которая описывает раннюю версию Cygwin без пинга. Я не нашел ни одной версии iputils, предназначенной для Windows.