What is the Ping Command?
The ping command is a Command Prompt command used to test the ability of the source computer to reach a specified destination computer. The ping command is usually used as a simple way verify that a computer can communicate over the network with another computer or network device.
The ping command operates by sending Internet Control Message Protocol (ICMP) Echo Request messages to the destination computer and waiting for a response. How many of those responses are returned, and how long it takes for them to return, are the two major pieces of information that the ping command provides.
Ping Command Syntax
ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target [/?]
-t = Using this option will ping the target until you force it to stop using Ctrl-C.
-n count = This option sets the number of ICMP Echo Request messages to send. If you execute the ping command without this option, four requests will be sent.
-l size = Use this option to set the size, in bytes, of the echo request packet from 32 to 65,527. The ping command will send a 32 byte echo request if you don't use the -l option.
-f = Use this ping command option to prevent ICMP Echo Requests from being fragmented by routers between you and the target. The -f option is most often used to troubleshoot Path Maximum Transmission Unit (PMTU) issues.
-i TTL = This option sets the Time to Live (TTL) value, the maximum of which is 255.
-v TOS = This option allows you to set a Type of Service (TOS) value. Beginning in Windows 7, this option no longer functions but still exists for compatibility reasons.
-r count = Use this ping command option to specify the number of hops between the your computer and the target computer or device that you'd like to be recorded and displayed. The maximum value for count is 9 so use the tracert command instead if you're interested in viewing all hops between two devices.
-s count = Use this option to report the time, in Internet Timestamp format, that each echo request is received and echo reply is sent. The maximum value for count is 4 meaning that only the first four hops can be time stamped.
-w timeout = Specifying a timeout value when executing the ping command adjusts the amount of time, in milliseconds, that ping waits for each reply. If you don't use the -w option, the default timeout value is used which is 4000, or 4 seconds.
-R = This option tells the ping command to trace the round trip path.
-S srcaddr = Use this option to specify the source address.
-4 = This forces the ping command to use IPv4 only but is only necessary if target is a hostname and not an IP address.
-6 = This forces the ping command to use IPv6 only but as with the -4 option, is only necessary when pinging a hostname.
target = This is the destination you wish to ping, either an IP address or a hostname.
/? = Use the help switch with the ping command to show detailed help about the command's several options.
Note: The -f, -v, -r, -s, -j, and -k options work when pinging IPv4 addresses only. The -R and -S options only work with IPv6.
Other less commonly used switches for the ping command exist including [-j host-list] and [-k host-list]. Execute ping /? from the Command Prompt for more information on these two options.
Ping Command Examples
ping -n 5 -l 1500 www.google.com
In this example, the ping command is used to ping the hostname www.google.com. The -n option tells the ping command to send 5 ICMP Echo Requests instead of the default of 4 and the -l option sets the packet size for each request to 1500 bytes instead of the default of 32 bytes. The result displayed in the Command Prompt window will look something like this:
Pinging www.google.com [22.214.171.124] with 1500 bytes of data: Reply from 126.96.36.199: bytes=1500 time=68ms TTL=52 Reply from 188.8.131.52: bytes=1500 time=68ms TTL=52 Reply from 184.108.40.206: bytes=1500 time=65ms TTL=52 Reply from 220.127.116.11: bytes=1500 time=66ms TTL=52 Reply from 18.104.22.168: bytes=1500 time=70ms TTL=52 Ping statistics for 22.214.171.124: Packets: Sent = 5, Received = 5, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 65ms, Maximum = 70ms, Average = 67ms
The 0% loss reported under Ping statistics for 126.96.36.199 tells me that each ICMP Echo Request message sent to www.google.com was returned. This means that, as far as my network connection goes, I can communicate with Google's website just fine.
In the above example, I'm pinging 127.0.0.1, also called the IPv4 localhost IP address or IPv4 loopback IP address, without options.
Using the ping command to ping 127.0.0.1 is an excellent way to test that Windows' network features are working properly but it says nothing about your own network hardware or your connection to any other computer or device. The IPv6 version of this test would be ping ::1.
ping -a 192.168.1.22
In this example I'm asking the ping command to find the hostname assigned to the 192.168.1.22 IP address but otherwise ping it as normal.
Pinging J3RTY22 [192.168.1.22] with 32 bytes of data: Reply from 192.168.1.22: bytes=32 time<1ms TTL=64 Reply from 192.168.1.22: bytes=32 time<1ms TTL=64 Reply from 192.168.1.22: bytes=32 time=1ms TTL=64 Reply from 192.168.1.22: bytes=32 time<1ms TTL=64 Ping statistics for 192.168.1.22: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms
As you can see, the ping command resolved the IP address I entered, 192.168.1.22, as the hostname J3RTY22 and then executed the remainder of the ping with default settings.
ping -t -6 SERVER
In this example, I force the ping command to use IPv6 with the -6 option and continue to ping SERVER indefinitely with the -t option.
Pinging SERVER [fe80::fd1a:3327:2937:7df3%10] with 32 bytes of data: Reply from fe80::fd1a:3327:2937:7df3%10: time=1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Reply from fe80::fd1a:3327:2937:7df3%10: time<1ms Ping statistics for fe80::fd1a:3327:2937:7df3%10: Packets: Sent = 7, Received = 7, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms Control-C ^C
I interrupted the ping manually with Ctrl-C after seven replies. Also, as you can see, the -6 option produced IPv6 addresses.
Tip: The number after the % in the replies generated in this ping command example is the IPv6 Zone ID, which most often indicates the network interface used. You can generate a table of Zone IDs matched with your network interface names by executing netsh interface ipv6 show interface. The IPv6 Zone ID is the number in the Idx column.
Ping Command Availability
The ping command is available from within the Command Prompt in Windows 8, Windows 7, Windows Vista, and Windows XP operating systems. The ping command is also available in older versions of Windows like Windows 98 and 95.
Note: The availability of certain ping command switches and other ping command syntax may differ from operating system to operating system.