ping -w和ping -W有什么区别?


15

什么是-w中(截止日期)标志ping呢?我无法在ping手册页中找到它的描述。仅用于-W,需要几秒钟作为参数。它们之间有什么区别,如何将ping超时(如果主机没有响应)设置为200ms?


1
在什么操作系统上(如果是Linux,则在发行版以及哪个程序包ping中)?ping有几种不同的版本,具有不同的选项。
吉尔斯(Gilles)'所以

Answers:


20

来自man ping

   -w deadline
          Specify a timeout, in seconds, before ping exits regardless of how many packets have been sent or received. In this case ping does not stop after count packet are sent, it waits either for deadline expire or until count probes are answered or for some error
          notification from network.

   -W timeout
          Time to wait for a response, in seconds. The option affects only timeout in absense of any responses, otherwise ping waits for two RTTs.

也就是说,-w设置整个程序会话的超时时间。如果您设置-w 30ping(程序)将在30秒后退出。

-W另一方面,设置单个ping的超时时间。如果设置-W 1,则该特定的ping尝试将超时。

至于如何将单个ping超时设置为200毫秒,我不认为这可以通过iputils'的版本完成ping。您可能想尝试直接使用ICMP库进行编程。


2
哦,我的手册页(archlinux)缺少该-w标志,但是有描述。我只是认为它属于-W。因此,没有办法定义小于1s的超时吗?
拉斐尔T

@RafaelT据我所知。
克里斯·

说清楚:如果使用-w-c将被忽略。如果您只需要一次ping,则可以使用-c 1 -W 4或适当的超时方法。
约翰,

1

我的联机帮助页(Fedora 18,iputils-20121221-1.fc18)说

   -w deadline
          Specify  a  timeout, in seconds, before ping exits regardless of
          how many packets have been sent or received. In this  case  ping
          does  not  stop after count packet are sent, it waits either for
          deadline expire or until count probes are answered or  for  some
          error notification from network.

   -W timeout
          Time to wait for a response, in seconds. The option affects only
          timeout in absence of any responses, otherwise  ping  waits  for
          two RTTs.

1

所有好的答案,但是请注意这个怪癖,是否(像我一样)在平台之间移植代码。下面的文本来自相应的“手册”文档。

在Mac OS X上:

-W waittime

    等待每个发送的数据包的答复的 时间(以毫秒单位)

在Raspberry Pi上:

-W timeout

    等待响应的时间,以秒为单位

我在Mac上编码为以等待1秒(1,000毫秒)-W 1000,但是当此代码移至Pi时,它等待了1000秒!

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.