在Cygwin中使用Linux Ping


8

我需要使用ping以普通Linux语法使用该命令的脚本,而Cygwin的默认软件包或Windows ping实用程序都无法使用。现在,我已经修补了该脚本以使用Windows版本(有些困难; Windows可执行文件不提供有用的返回码,因此我必须解析输出),但是我想盒兼容性和Linux ping的其他功能。在进一步介绍之前,请先声明我以管理员模式运行Cygwin。这不是特权问题。这是一个版本问题。

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

Usage:  ping [-dfqrv] host [packetsize [count [preload]]]

手册页的描述以“ 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

当然,这是一个功能更丰富的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

在此处在线记录。除了引用Cygwin之外,我似乎找不到对ping的cygwin版本的引用。

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

Answers:


3

你可以

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

或者(我会首先尝试)


谢谢,看来第一个选项对我来说会更好,因为其中一个要求是它具有iputils版本的语法,因此尝试其他ping实现将无济于事。就是说,我怀疑我是第一个遇到这个问题的人,所以我会等待有人已经尝试过。
凯文·维米尔

顺便说一句,iputils差不多有两年没有发布标记了,但是在其git存储库中已经有一些对IPv6的支持的开发,虽然很难找到,但是位于git://git.linux- ipv6.org / gitroot / iputils.git`。希望能对某人有所帮助。我将补丁发布到完成后,还有很多工作要做,但这似乎并非不可克服。
凯文·维米尔

1
如果您在为Cygwin构建iputils方面有收获,那么我强烈怀疑Cygwin社区的其他成员也很乐意这么做。
me_and 2012年

@me_and-如果成功,我一定会释放它。但是,尽管前几个文件通过简单地更改#include <linux/filename.h>为即可进行编译#include <cygwin/filename.h>,但后来我发现Cygwin套接字驱动程序也缺少iputils所需的功能。这不仅是为Cygwin构建iputils的问题,还是与iputils一起构建Cygwin的问题。如果我有空的话,我待会儿再去。
凯文·维米尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.