Ping Command

Ping Command Examples, Options, Switches, and More

Screenshot of the ping command in Windows 10
Ping Command (Windows 10).

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.

Note: The ping command is often used with other networking related Command Prompt commands like tracert, ipconfig, netstat, nslookup, and others.

Ping Command Availability

The ping command is available from within the Command Prompt in Windows 10, 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.

The ping command can also be found in Command Prompt in the Advanced Startup Options and System Recovery Options repair/recovery menus.

Note: The availability of certain ping command switches and other ping command syntax might differ from operating system to operating system.

Ping Command Syntax

ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [-w timeout] [-R] [-S srcaddr] [-p] [-4] [-6] target [/?]

Tip: See How to Read Command Syntax if you're not sure how to interpret the ping command syntax above or described in the table below.

-tUsing this option will ping the target until you force it to stop using Ctrl-C.
-aThis ping command option will resolve, if possible, the hostname of an IP address target.
-n countThis option sets the number of ICMP Echo Requests to send, from 1 to 4294967295. The ping command will send 4 by default if -n isn't used.
-l sizeUse 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.
-fUse 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 TTLThis option sets the Time to Live (TTL) value, the maximum of which is 255.
-v TOSThis 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 countUse this ping command option to specify the number of hops between 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 the hops between two devices.
-s countUse 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 timeoutSpecifying 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 of 4000 is used, which is 4 seconds.
-RThis option tells the ping command to trace the round trip path.
-S srcaddrUse this option to specify the source address.
-pUse this switch to ping a Hyper-V Network Virtualization provider address.
-4This forces the ping command to use IPv4 only but is only necessary if target is a hostname and not an IP address.
-6This forces the ping command to use IPv6 only but as with the -4 option, is only necessary when pinging a hostname.
targetThis 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], [-k host-list], and [-c compartment]. Execute ping /? from the Command Prompt for more information on these two options.

Tip: Save all of the ping command output to a file using a redirection operator. See How to Redirect Command Output to a File for instructions or see our Command Prompt Tricks list for more tips.

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 [74.125.224.82] with 1500 bytes of data:
Reply from 74.125.224.82: bytes=1500 time=68ms TTL=52
Reply from 74.125.224.82: bytes=1500 time=68ms TTL=52
Reply from 74.125.224.82: bytes=1500 time=65ms TTL=52
Reply from 74.125.224.82: bytes=1500 time=66ms TTL=52
Reply from 74.125.224.82: bytes=1500 time=70ms TTL=52

Ping statistics for 74.125.224.82:
 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 74.125.224.82 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.

ping 127.0.0.1

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 to 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

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

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.