在 Cygwin 中使用 Linux ping

Kev*_*eer 8 windows cygwin ping

我需要使用ping带有普通 Linux 语法的命令的脚本,Cygwin 的默认包或 Windows ping 实用程序都不起作用。现在,我已经修补脚本以使用 Windows 版本(有一些困难;Windows 可执行文件不提供有用的返回代码,所以我必须解析输出),但我想要的是 -盒兼容性和Linux ping 的附加功能。在我进一步讨论之前,让我声明我正在以管理员模式运行 Cygwin;这不是特权问题。是版本问题。

Cygwin 的默认ping命令在安装管理器中列为“1.0-1”版本,位于“ping:测试 IP 网络连接的基本网络工具”包中。没有参数,它输出:

Usage:  ping [-dfqrv] host [packetsize [count [preload]]]
Run Code Online (Sandbox Code Playgroud)

手册页描述以“DARPA Internet 是一个庞大而复杂的网络硬件聚合体”开头,这对我来说有点过时了。这是安装在/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
Run Code Online (Sandbox Code Playgroud)

这当然是一个功能更丰富的 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
Run Code Online (Sandbox Code Playgroud)

在线记录在这里。除了参考 Cygwin,我似乎找不到对 ping 的 cygwin 版本的引用。

我发现了这个古老的电子邮件线程,它描述了没有 ping 的 Cygwin 的早期版本。我还没有找到任何为 Windows 设计的 iputils 版本。

Nif*_*fle 3

你可以

  • 尝试从源代码构建 ping,它是iputils 包的一部分。但在 cygwin 上构建东西可能会很麻烦。

或者(我会先尝试这个)