Sunday, December 6, 2009

15 Effective Ping Command Examples

As you already know, ping command is used to find out whether the peer host/gateway is reachable.
If you are thinking ping is such a simple command and why do I need 15 examples, you should read the rest of the article.
Ping command provides lot more options than what you might already know.

Ping Example 1. Increase or Decrease the Time Interval Between Packets

By default ping waits for 1 second before sending the next packet.You can increase or decrease this using option -i as shown below.

Increase Ping Time Interval

Example: Wait for 5 seconds before sending the next packet.
$ ping -i 5 IP

Decrease Ping Time Interval

Example: Wait 0.1 seconds before sending the next packet.
# ping -i 0.1 IP
Note: Only super user can specify interval less than 0.2 seconds. If not, you’ll get the following error message.
$ ping -i 0.1 127.0.0.1PING 0 (127.0.0.1) 56(84) bytes of data.ping: cannot flood; minimal interval, allowed for user, is 200ms

Ping Example 2. Check whether the local network interface is up and running

Before checking whether the peer machine is reachable, first checkwhether the local network network is up and running using any one ofthe following 3 methods.

Ping localhost using zero (0)

This is probably the easiest and simplest way to ping a local host
$ ping 0PING 0 (127.0.0.1) 56(84) bytes of data.64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.024 ms^C

Ping localhost using name

$ ping localhostPING localhost (127.0.0.1) 56(84) bytes of data.64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.051 ms64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.055 ms^C--- localhost ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 999msrtt min/avg/max/mdev = 0.051/0.053/0.055/0.002 ms

Ping localhost using ip

$ ping 127.0.0.1
To quit the ping command, send SIGINT signal by pressing CTRL+C. Ifyou have not specified any option to make the ping to exitautomatically, then you will be terminating using CTRL+C ( SIGINT )which will show the statistics and then terminate the ping process.When everything is working properly, it should say ‘0% packet loss’
2 packets transmitted, 2 received, 0% packet loss, time 999msrtt min/avg/max/mdev = 0.051/0.053/0.055/0.002 ms

Ping Example 3. Send N packets and stop

Send N packets specified with -c option and then stop. This way theping command can exit automatically instead of pressing CTRL+C to exit.
In the following example, ping command sends 5 packets, and waitsfor response from the destination host. Ping will exit after receivingthe response or error.
$ ping -c 5 google.comPING google.com (74.125.45.100) 56(84) bytes of data.64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=1 ttl=44 time=731 ms64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=2 ttl=44 time=777 ms64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=3 ttl=44 time=838 ms64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=4 ttl=44 time=976 ms64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=5 ttl=44 time=1071 ms--- google.com ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 4216msrtt min/avg/max/mdev = 731.039/879.129/1071.050/126.625 ms

Ping Example 4. Show Version and Exit

Display the current version of ping program using -V option.
$ ping -Vping utility, iputils-sss20071127

Ping Example 5. Flood the network

Super users can send hundred or more packets per second using -foption. It prints a ‘.’ when a packet is sent, and a backspace isprinted when a packet is received.
As shown below, ping -f has sent more than 400,000 packets in few seconds.
# ping -f localhostPING localhost (127.0.0.1) 56(84) bytes of data..^C--- localhost ping statistics ---427412 packets transmitted, 427412 received, 0% packet loss, time 10941msrtt min/avg/max/mdev = 0.003/0.004/1.004/0.002 ms, ipg/ewma 0.025/0.004 ms

Ping Example 6. Audible ping: Give beep when the peer is reachable

This option is useful for sysadmin during troubleshooting. There isno need for you to look at the ping output after each and every change.You can continue working with your changes, and when the remote machinebecome reachable you’ll hear the beep automatically.
$ ping -a IP
Note: It can give beep only from terminal number 1 through 7 and gnome-terminal ( It will not work in console ).

Ping Example 7. Find out the IP address

You can identify the ip-address using the host name as shown below.
$ ping -c 1 google.comPING google.com (74.125.67.100) 56(84) bytes of data.64 bytes from gw-in-f100.google.com (74.125.67.100): icmp_seq=1 ttl=43 time=287 ms--- google.com ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 0msrtt min/avg/max/mdev = 287.903/287.903/287.903/0.000 ms

Ping Example 8. Print Only Ping Command Summary Statistics

Use option -q to view only the ping statistics summary as shown below.
$ ping -c 5 -q 127.0.0.1PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.--- 127.0.0.1 ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 3998msrtt min/avg/max/mdev = 0.047/0.053/0.061/0.009 ms

Ping Example 9. Change Ping Packet Size

You can change the packet size of ping command using -s option.
Example: Change the default packet size from 56 to 100.
$ ping -s 100 localhostPING localhost (127.0.0.1) 100(128) bytes of data.108 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.022 ms108 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.021 ms108 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.020 ms^C--- localhost ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 1998msrtt min/avg/max/mdev = 0.020/0.021/0.022/0.000 ms

Ping Packet Size

In the above example, when we set the packet size to 100, itdisplays ‘128 bytes’ in the output. This is because of the Ping packetheader size, which is 28 bytes. So, if you specify the packet size as100, 28 bytes for header will be added to it and 128 bytes will be sent.
Ping Bytes Sent = Ping Packet Size + Ping Header Packet Size (28 bytes)

Ping Example 10. Timeout -w

Ping -w option specifies the deadline to terminate the ping output.This specifies the total number of seconds the ping command should sendpackets to the remote host.
The following example will ping for 5 seconds. i.e ping command willexit after 5 seconds irrespective of how many packets are sent orreceived.
$ ping -w 5 localhost
Note: When you specify both -w, and -c, whichever comes first will terminate the ping command.

Ping Example 11. Online ping

Ping from different locations and check the reachability(availability or time for reaching) of your server from differentlocations.
If you want to do an online ping, try just ping.

Ping Example 12. Option -w or -c Exits Ping

$ ping -c 4 0 -w 2PING 0 (127.0.0.1) 56(84) bytes of data.64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.064 ms64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.060 ms64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.058 ms--- 0 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 1998msrtt min/avg/max/mdev = 0.058/0.060/0.064/0.009 ms$ ping -c 4 0 -w 10PING 0 (127.0.0.1) 56(84) bytes of data.64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.063 ms64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.060 ms64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.055 ms64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.061 ms--- 0 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 2997msrtt min/avg/max/mdev = 0.055/0.059/0.063/0.009 ms

Ping Example 13. Shorter statistics with SIGQUIT

While ping is printing the individual packet status, when you want to view the shorter statistics you can use this technique.
Pressing CTRL+| (Control key followed by pipesymbol) for the shows the summary in between, and continues with itpacket sending and receiving process.
$ ping -w 100 localhostPING localhost (127.0.0.1) 56(84) bytes of data.64 bytes from localhost (127.0.0.1): icmp_seq=10 ttl=64 time=0.021 ms64 bytes from localhost (127.0.0.1): icmp_seq=11 ttl=64 time=0.022 ms11/11 packets, 0% loss, min/avg/ewma/max = 0.020/0.022/0.022/0.024 ms64 bytes from localhost (127.0.0.1): icmp_seq=12 ttl=64 time=0.021 ms64 bytes from localhost (127.0.0.1): icmp_seq=13 ttl=64 time=0.022 ms64 bytes from localhost (127.0.0.1): icmp_seq=14 ttl=64 time=0.021 ms64 bytes from localhost (127.0.0.1): icmp_seq=15 ttl=64 time=0.021 ms19/19 packets, 0% loss, min/avg/ewma/max = 0.020/0.022/0.022/0.024 ms64 bytes from localhost (127.0.0.1): icmp_seq=31 ttl=64 time=0.022 ms64 bytes from localhost (127.0.0.1): icmp_seq=32 ttl=64 time=0.022 ms32/32 packets, 0% loss, min/avg/ewma/max = 0.020/0.022/0.022/0.027 ms64 bytes from localhost (127.0.0.1): icmp_seq=33 ttl=64 time=0.023 ms..

Ping Example 14. Specify path for ping to send the packet

You can also specify through which path the ping should send the packet to destination.
$ ping hop1 hop2 hop3 .. hopN destination
$ ping 192.168.3.33 192.168.7.1 192.168.4.45
Note: If one of the hop in the path is not reachable then you will have failure in pinging.

Ping Example 15. Record and print route of how ECHO_REQUEST sent and ECHO_REPLY received

It records, and prints the network route through which the packet issent and received. This is useful for network engineers who wish toknow how the packet is sent and received.
$ ping -R 192.168.1.63PING 192.168.1.63 (192.168.1.63) 56(84) bytes of data.64 bytes from 192.168.1.63: icmp_seq=1 ttl=61 time=2.05 msRR:   192.168.9.118        192.168.3.25        192.168.10.35        192.168.1.26        192.168.1.63        192.168.1.63        192.168.10.4        192.168.3.10        192.168.4.2564 bytes from 192.168.1.63: icmp_seq=2 ttl=61 time=2.00 ms      (same route)
Source: thegeekstuff.com