10

I have a web application that runs through thousands of IP addresses and checks if they're online. Basically, if a server uses more than 250ms to respond, it's considered offline in our case. It would be an enormous timesaver if we could get the ping command to give up after about 300 ms, instead of what seems to be the minimum value of the -W parameter, 1 second.

3 Answers 3

8

Found a similar question out there, and the answer was a ping alternative called fping. Maybe it'll be of some use to you. https://serverfault.com/questions/200468/how-can-i-set-a-short-timeout-with-the-ping-command

4

From the man pages on ping it looks as though it is the -o to send only 1 packet...

ping -W 250 -o

That should return much more quickly also the -W parameter is in milliseconds, so that should send 1 packet and only wait 250ms for a response.

EDIT You Sure?:

$ ping -W 250 -o google.com
PING google.com (74.125.224.178): 56 data bytes
64 bytes from 74.125.224.178: icmp_seq=0 ttl=51 time=18.850 ms
--- google.com ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 18.850/18.850/18.850/0.000 ms
6
  • 3
    ping: invalid option -- 'o'
    – Hubro
    Mar 30, 2011 at 3:09
  • 1
    @codemonkey Are you sure? What Distro are you using?
    – Joshkunz
    Mar 30, 2011 at 3:26
  • 1
    Debian GNU/Linux 6.0
    – Hubro
    Mar 30, 2011 at 3:31
  • My apologies I didn't realize that the darwin ping utility was so different, looks like fping should give you the added functionality you need.
    – Joshkunz
    Mar 30, 2011 at 3:38
  • 1
    Yah, my xubuntu ping man page says "Time to wait for a response, in seconds." for -W
    – FCTW
    Jan 23, 2016 at 7:59
1

Running on Mac Maverick. Pings 256 addresses in 39 seconds, i.e., 151ms / ping.

$cat netcheck
i=255
while
  test $i -ge 0
do
  address=192.168.1.$i
  if
    ping -i .1 -c 1 -W 50 $address > /dev/null
  then
    echo $address
  fi
  let i=$i-1
done
$time ./netcheck
192.168.1.255
192.168.1.254
192.168.1.241
192.168.1.216
192.168.1.174
192.168.1.148
192.168.1.108
192.168.1.102
192.168.1.0

real    0m38.653s
user    0m0.369s
sys 0m0.616s
$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .