Qual é a diferença entre ping -w e ping -W?

15

Para que serve a -wbandeira (prazo) ping? Não consigo encontrar uma descrição dele na pingpágina de manual; only for -W, que leva segundos como parâmetro. Qual é a diferença entre eles e como posso definir um tempo limite de ping (se o host não estiver respondendo) para 200ms?

Rafael T
fonte
1
Em qual sistema operacional, e se Linux, distribuição e em qual pacote o pingexecutável está? Existem várias versões diferentes de ping ao redor, com opções diferentes.
Gilles 'SO- stop be evil'

Respostas:

20

De 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.

Ou seja, -wdefine o tempo limite para toda a sessão do programa . Se você definir -w 30, ping(o programa) sairá após 30 segundos.

-Wpor outro lado, define o tempo limite para um único ping . Se você definir -W 1, essa tentativa de ping em particular expirará.

Quanto a como definir um tempo limite de ping individual de 200ms, não acredito que isso possa ser feito com iputils'version of ping. Você pode tentar programar diretamente com uma biblioteca ICMP.

Chris Down
fonte
2
ah, minha página de manual (archlinux) está faltando a -wflag, mas tem a descrição. Eu apenas acreditava que pertencia a -W. Portanto, não há como definir um tempo limite menor que 1s?
Rafael T
@ RafaelT Não tanto quanto eu sei.
Chris Baixo
Para deixar claro: se você usar -w, -cserá ignorado. Se você precisar apenas de um único ping, poderá usar -c 1 -W 4o tempo limite adequado para você.
John
1

Minha página de manual (Fedora 18, iputils-20121221-1.fc18) diz

   -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.
vonbrand
fonte
1

Todas as boas respostas, mas esteja atento a essa peculiaridade se (como eu) estiver portando código entre plataformas. O texto abaixo é da documentação respectiva 'man ping'.

No Mac OS X:

-W waittime

    Tempo em milissegundos para aguardar uma resposta para cada pacote enviado.

No Raspberry Pi:

-W timeout

    Hora de esperar por uma resposta, em segundos .

Eu codifiquei no Mac para esperar 1 segundo (1.000 ms) -W 1000, mas quando esse código foi movido para o Pi, ele esperou até 1.000 segundos!

Yutenji
fonte