Qual è la differenza tra ping -w e ping -W?


15

A cosa serve la -wbandiera (scadenza) ping? Non riesco a trovarne una descrizione nella pingpagina man; solo per -W, che richiede secondi come parametro. Qual è la differenza tra loro e come posso impostare un timeout del ping (se l'host non risponde) a 200 ms?


1
Su quale sistema operativo, e se Linux, distribuzione e in quale pacchetto è pingeseguibile? Esistono diverse versioni di ping in giro, con diverse opzioni.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


20

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

Cioè, -wimposta il timeout per l' intera sessione del programma . Se impostato -w 30, ping(il programma) verrà chiuso dopo 30 secondi.

-Wd'altra parte imposta il timeout per un singolo ping . Se impostato -W 1, quel particolare tentativo di ping scadrà.

Per quanto riguarda come impostare un timeout di ping individuale di 200ms, non credo che questo possa essere fatto con iputils'versione di ping. Potresti provare a programmare direttamente con una libreria ICMP.


2
oh, nella mia pagina man (archlinux) manca la -wbandiera, ma ha la descrizione. Ho solo creduto che appartenesse a -W. Quindi non c'è modo di definire un timeout inferiore a 1s?
Rafael T,

@RafaelT Non per quanto ne so.
Chris Down

Per chiarire: se si utilizza -w, -cverrà ignorato. Se hai solo bisogno di un singolo ping, puoi usare -c 1 -W 4o qualunque sia il timeout appropriato per te.
Giovanni,

1

La mia manpage (Fedora 18, iputils-20121221-1.fc18) dice

   -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

Tutte buone risposte, ma fai attenzione a questa stranezza (come me) stai portando il codice tra le piattaforme. Il testo seguente è tratto dalla rispettiva documentazione "man ping".

Su Mac OS X:

-W waittime

    Tempo in millisecondi per attendere una risposta per ogni pacchetto inviato.

Su Raspberry Pi:

-W timeout

    Tempo di attesa per una risposta, in secondi .

Ho codificato sul Mac per attendere 1 secondo (1.000 ms) come -W 1000, ma quando questo codice si è spostato sul Pi, ha aspettato fino a 1.000 secondi!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.