Мне нужно работать со скриптом, который использует ping
команду с ее обычным синтаксисом Linux, ни пакет Cygwin по умолчанию, ни утилита ping Windows не будут работать. На данный момент я пропатчил скрипт для использования версии Windows (с некоторыми трудностями; исполняемый файл Windows не предоставляет полезных кодов возврата, поэтому мне приходится анализировать вывод), но мне нужна совместимость «из коробки» идополнительные возможностиping Linux. Прежде чем продолжить, позвольте мне заявить, что я запускаю Cygwin в режиме администратора; это не проблема привилегий. Это проблема версий.
Команда Cygwin по умолчанию ping
указана как версия '1.0-1' в диспетчере настроек, в пакете 'ping: a basic network tool to test IP network connection'. Без аргументов она выводит:
Usage: ping [-dfqrv] host [packetsize [count [preload]]]
и описание страницы руководства начинается с«Интернет DARPA — это большая и сложная совокупность сетевого оборудования»,, который мне кажется более чем немного устаревшим. Это версия, установленная в /bin/ping
.
Команда Windows ping
находится по адресу $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
Это, безусловно, более многофункциональный ping (в частности, он включает тайм-ауты, что для меня важно), но это не та версия, которая доступна в современной установке 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 без ping. Я не нашел ни одной версии iputils, предназначенной для Windows.
решение1
Вы могли бы либо
- попробуйте построить пинг из источника, это частьпакет iputils. Но сборка чего-либо на Cygwin может оказаться довольно хлопотной.
Или (и я бы попробовал это в первую очередь)
- попробуйте другую реализацию ping, например, эту на perlСеть::Пингилиодин из других на CPAN