Мне нужно работать со скриптом, который использует ping
Команда с ее обычным синтаксисом Linux, ни пакет Cygwin по умолчанию, ни утилита Windows ping не будут работать. На данный момент я исправил сценарий для использования версии для Windows (с некоторыми трудностями; исполняемый файл Windows не предоставляет полезных кодов возврата, поэтому мне нужно проанализировать вывод), но я бы хотел совместимость коробки и дополнительные возможности из Linux пинг. Прежде чем продолжить, позвольте мне заявить, что я запускаю Cygwin в режиме администратора; это не проблема привилегий. Это проблема версий.
Cygwin по умолчанию ping
Команда указана как версия «1.0-1» в диспетчере установки, в пакете «ping: базовый сетевой инструмент для проверки подключения к IP-сети». Без аргументов выводит:
Usage: ping [-dfqrv] host [packetsize [count [preload]]]
и описание страницы руководства начинается с «Интернет DARPA - это большое и сложное объединение сетевого оборудования» , что выглядит более чем немного устаревшим для меня. Это версия, установленная в /bin/ping
,
Окна 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
Это, безусловно, более многофункциональный пинг (в частности, он включает таймауты, что важно для меня), но это не та версия, которая доступна в современной установке 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.
#include <linux/filename.h>
в#include <cygwin/filename.h>
и тому подобное, позже я обнаружил, что драйверам сокетов Cygwin также не хватает функций, необходимых для iputils. Это не просто вопрос создания iputils для Cygwin, это также вопрос создания Cygwin для работы с iputils. Я попробую позже, если у меня будет свободное время.