Difference between revisions of "Ping (command)"

From wikieduonline
Jump to navigation Jump to search
 
(43 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
{{lowercase}}
 
<code>[[wikipedia:Ping_(networking_utility)|ping]]</code> ([[1983]]) command is available in almost all operating systems. The command-line options of the ping utility and its output vary between the numerous implementations. Options may include among others:
 
<code>[[wikipedia:Ping_(networking_utility)|ping]]</code> ([[1983]]) command is available in almost all operating systems. The command-line options of the ping utility and its output vary between the numerous implementations. Options may include among others:
 
* Count of tests: (<code>-c</code>)<ref>https://linux.die.net/man/8/ping</ref> (Linux and macOS), (<code>-n</code> Windows)
 
* Count of tests: (<code>-c</code>)<ref>https://linux.die.net/man/8/ping</ref> (Linux and macOS), (<code>-n</code> Windows)
Line 4: Line 5:
 
* Limits for the number of network hops (<code>[[TTL]]</code>) that probes traverse
 
* Limits for the number of network hops (<code>[[TTL]]</code>) that probes traverse
 
Timing options:
 
Timing options:
* Timeout for exiting: <code>-t</code> (macOS), Linux not implemented.
+
* Timeout for exiting: <code>[[-t]]</code> (macOS), Linux not implemented.
* Interval between the requests
+
* [[Interval]] between the requests <code>-i</code> (macOS)
 
* Time to wait for a response (<code>-W</code>) miliseconds for macOS and seconds for Linux
 
* Time to wait for a response (<code>-W</code>) miliseconds for macOS and seconds for Linux
 
Output format:
 
Output format:
Line 13: Line 14:
 
[[man]] page: https://linux.die.net/man/8/ping
 
[[man]] page: https://linux.die.net/man/8/ping
  
<pre>
 
$ ping -c 5 www.example.com
 
PING www.example.com (93.184.216.34): 56 data bytes
 
64 bytes from 93.184.216.34: icmp_seq=0 ttl=56 time=11.632 ms
 
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=11.726 ms
 
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=10.683 ms
 
64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=9.674 ms
 
64 bytes from 93.184.216.34: icmp_seq=4 ttl=56 time=11.127 ms
 
  
--- www.example.com ping statistics ---
+
$ [[ping -c]] 5 www.example.com
5 packets transmitted, 5 packets received, 0.0% packet loss
+
PING www.example.com (93.184.216.34): 56 data bytes
round-trip min/avg/max/stddev = 9.674/10.968/11.726/0.748 ms
+
64 bytes from 93.184.216.34: icmp_seq=0 ttl=56 time=11.632 ms
</pre>
+
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=11.726 ms
 +
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=10.683 ms
 +
64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=9.674 ms
 +
64 bytes from 93.184.216.34: icmp_seq=4 ttl=56 time=11.127 ms
 +
 +
--- www.example.com ping statistics ---
 +
5 packets transmitted, 5 packets received, 0.0% packet loss
 +
round-trip min/avg/max/stddev = 9.674/10.968/11.726/0.748 ms
  
  
Line 50: Line 50:
 
  ping -c1 -t1  www.example.com
 
  ping -c1 -t1  www.example.com
 
  -t timeout (not available in Linux)
 
  -t timeout (not available in Linux)
 +
 +
ping -i 0.1 google.com
 +
 +
Note: [[macOS application firewall]] in stealth mode ignores ICMP requests.
  
 
== [[Ping (PAN-OS)|PAN-OS]] ==
 
== [[Ping (PAN-OS)|PAN-OS]] ==
[[ping host]] 10.10.10.xxx
+
* <code>[[ping host]] 10.10.10.xxx</code>
  
 
== nmap ==
 
== nmap ==
  [[nmap]] -sn 10.10.10.*
+
* <code>[[nmap]] -sn 10.10.10.*</code>
  
 
== [[Cisco IOS]] ==
 
== [[Cisco IOS]] ==
Line 65: Line 69:
 
  Success rate is 0 percent (0/5)
 
  Success rate is 0 percent (0/5)
  
 
+
See also: <code>[[ios_ping]]</code> [[Ansible module]]
* See also: [[ios_ping]] [[Ansible module]]
 
  
 
== Activities ==
 
== Activities ==
Line 76: Line 79:
 
* Use <code>[[nmap]]</code> for ping a full subnet: <code>[[nmap]] -sn 192.168.0.*</code>
 
* Use <code>[[nmap]]</code> for ping a full subnet: <code>[[nmap]] -sn 192.168.0.*</code>
  
* [[Windows]]: <code>netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow</code>
+
* [[Windows]]:  
 +
** <code>[[netsh advfirewall]] firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow</code>
  
== Related commands ==
+
== Other sofware using ping ==
* <code>[[mtr]]</code>
+
* <code>[[jfrog rt ping]]</code>
 +
* <code>[[rabbitmqctl ping]]</code>
 +
* <code>[[redis-cli ping]]</code>
 +
* <code>[[ipfs ping]]</code>
 +
* <code>[[influx ping]]</code>
 +
* <code>[[nats server ping]]</code>
 +
* <code>[[netdatacli ping]]</code>
 +
 
 +
== Related ==
 +
* <code>[[mtr]]</code>, <code>[[traceroute]]</code>
 
* [[ping (Cisco IOS)]]
 
* [[ping (Cisco IOS)]]
 
* [[Collectd]] ping plugin
 
* [[Collectd]] ping plugin
 
* [[Smokeping]]
 
* [[Smokeping]]
 +
* [[Jitter]]
 +
* <code>[[tc qdisc]] add dev eth0 root netem delay 5000ms</code>
 
* <code>[[kill]] -[[SIGINT]] PID</code>
 
* <code>[[kill]] -[[SIGINT]] PID</code>
* [[PRTG]] ping sensor
+
* [[PRTG]] ping sensor <ref>https://www.paessler.com/manuals/prtg/ping_sensor</ref>
 +
* <code>[[ping -D]] [[timestamp]]</code>
 +
* <code>[[ansible]] YourWebserversGroup [[-m ping]]</code>
 +
* Using bash tcp built-ins to test connectivity:
 +
echo >/dev/tcp/google.com/80; if [ $? -eq 0 ]; then echo "Connection Successful"; fi
 +
* <code>[[check_ping]]</code> Nagios
 +
 
 +
>/dev/tcp/google.com/80 && echo Success || echo Failure
 +
* [[Ping An Insurance]]
 +
* [[OpenSSH 9.5]]
 +
* ping [[8.8.8.8]]
 +
* ping [[1.1.1.1]]
  
 
== See also ==
 
== See also ==
* [[broadcast]] [[address]]
+
* {{ping cmd}}
 
* {{ping}}
 
* {{ping}}
 +
* {{ICMP}}
 
* {{TCP}}
 
* {{TCP}}
* [[Pingdom]]
 
* {{DNS}}
 
 
* {{Network monitoring}}
 
* {{Network monitoring}}
  

Latest revision as of 13:24, 22 January 2024

ping (1983) command is available in almost all operating systems. The command-line options of the ping utility and its output vary between the numerous implementations. Options may include among others:

  • Count of tests: (-c)[1] (Linux and macOS), (-n Windows)
  • Size of the payload
  • Limits for the number of network hops (TTL) that probes traverse

Timing options:

  • Timeout for exiting: -t (macOS), Linux not implemented.
  • Interval between the requests -i (macOS)
  • Time to wait for a response (-W) miliseconds for macOS and seconds for Linux

Output format:

Linux[edit]

man page: https://linux.die.net/man/8/ping


$ ping -c 5 www.example.com
PING www.example.com (93.184.216.34): 56 data bytes
64 bytes from 93.184.216.34: icmp_seq=0 ttl=56 time=11.632 ms
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=11.726 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=10.683 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=9.674 ms
64 bytes from 93.184.216.34: icmp_seq=4 ttl=56 time=11.127 ms

--- www.example.com ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 9.674/10.968/11.726/0.748 ms


ping -i google.com

Audible ping

ping -a IP
ping hostwithoutdomain
ping: hostwithoutdomain: Name or service not known

BusyBox

ping www.google.com
ping: bad address
ping 10.10.xx.xx
PING 10.10.xx.xx (10.10.xx.xx) 56(84) bytes of data.
From xx.56.242.XX icmp_seq=1 Packet filtered
^C
--- 10.10.25.10 ping statistics ---
3 packets transmitted, 0 received, +1 errors, 100% packet loss, time 2012ms

macOS[edit]

ping -c1 -t1  www.example.com
-t timeout (not available in Linux)
ping -i 0.1 google.com

Note: macOS application firewall in stealth mode ignores ICMP requests.

PAN-OS[edit]

nmap[edit]

Cisco IOS[edit]

ping 10.10.10.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.10.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

See also: ios_ping Ansible module

Activities[edit]

Advanced[edit]

  1. Review source code of different ping implementation:
Linux: https://github.com/iputils/iputils/blob/master/ping.c
BSD: https://sourceforge.net/p/iputils/code/ci/HEAD/tree/ping.c
macOS: https://opensource.apple.com/source/network_cmds/network_cmds-511/ping.tproj/ping.c.auto.html
  • Use nmap for ping a full subnet: nmap -sn 192.168.0.*
  • Windows:
    • netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow

Other sofware using ping[edit]

Related[edit]

echo >/dev/tcp/google.com/80; if [ $? -eq 0 ]; then echo "Connection Successful"; fi
>/dev/tcp/google.com/80 && echo Success || echo Failure

See also[edit]

  • https://linux.die.net/man/8/ping
  • https://www.paessler.com/manuals/prtg/ping_sensor
  • Advertising: