PING(1M) Maintenance Commands PING(1M)


NAME


ping - send ICMP (ICMP6) ECHO_REQUEST packets to network hosts

SYNOPSIS


/usr/sbin/ping host [timeout]


/usr/sbin/ping -s [-l | -U] [-abdDLnrRv] [-A addr_family]
[-c traffic_class] [-g gateway [-g gateway...]]
[-N next_hop_router] [-F flow_label] [-I interval]
[-i interface] [-P tos] [-p port] [-t ttl] host
[data_size] [npackets]


DESCRIPTION


The utility ping utilizes the ICMP (ICMP6 in IPv6) protocol's
ECHO_REQUEST datagram to elicit an ICMP (ICMP6) ECHO_RESPONSE from the
specified host or network gateway. If host responds, ping will print:

host is alive


on the standard output and exit. Otherwise, after timeout seconds, it
will write:

no answer from host


The default value of timeout is 20 seconds.


When you specify the s flag, sends one datagram per second (adjust with
-I) and prints one line of output for every ECHO_RESPONSE that it
receives. ping produces no output if there is no response. In this second
form, ping computes round trip times and packet loss statistics; it
displays a summary of this information upon termination or timeout. The
default data_size is 56 bytes, or you can specify a size with the
data_size command-line argument. If you specify the optional npackets,
ping sends ping requests until it either sends npackets requests or
receives npackets replies.


When using ping for fault isolation, first ping the local host to verify
that the local network interface is running.

OPTIONS


The following options are supported:

-A addr_family
Specify the address family of the target host.
addr_family can be either inet or inet6. Address
family determines which protocol to use. For an
argument of inet, IPv4 is used. For inet6, IPv6
is used.

By default, if the name of a host is provided,
not the literal IP address, and a valid IPv6
address exists in the name service database, ping
will use this address. Otherwise, if the name
service database contains an IPv4 address, it
will try the IPv4 address.

Specify the address family inet or inet6 to
override the default behavior. If the argument
specified is inet, ping will use the IPv4 address
associated with the host name. If none exists,
ping will state that the host is unknown and
exit. It does not try to determine if an IPv6
address exists in the name service database.

If the specified argument is inet6, ping uses the
IPv6 address that is associated with the host
name. If none exists, ping states that the host
is unknown and exits.


-D
Don't allow probe packets to be fragmented. If
the packet size exceeds the MTU of a gateway it
passes through, the gateway will reject it.


-F flow_label
Specify the flow label of probe packets. The
value must be an integer in the range from 0 to
1048575. This option is valid only on IPv6.


-I interval
Turn on the statistics mode and specify the
interval between successive transmissions. The
default is one second. See the discussion of the
-s option. The minimum interval is 0.01 seconds.
It is an error to specify a smaller interval.


-L
Turn off loopback of multicast packets. Normally,
members are in the host group on the outgoing
interface, a copy of the multicast packets will
be delivered to the local machine.


-N next_hop_router
Specify a next-hop router so that the probe
packet goes through the specified router along
its path to the target host. This option
essentially bypasses the system routing table and
leaves the probe packet header unmodified. Only
one next-hop router can be specified.


-P tos
Set the type of service (tos) in probe packets to
the specified value. The default is zero. The
value must be an integer in the range from 0 to
255. Gateways also in the path can route the
probe packet differently, depending upon the
value of tos that is set in the probe packet.
This option is valid only on IPv4.


-R
Record route. Sets the IPv4 record route option,
which stores the route of the packet inside the
IPv4 header. The contents of the record route are
only printed if the -v and -s options are given.
They are only set on return packets if the target
host preserves the record route option across
echos, or the -l option is given. This option is
valid only on IPv4.


-U
Send UDP packets instead of ICMP (ICMP6) packets.
ping sends UDP packets to consecutive ports
expecting to receive back ICMP (ICMP6)
PORT_UNREACHABLE from the target host.


-a
ping all addresses, both IPv4 and IPv6, of the
multihomed destination. The output appears as if
ping has been run once for each IP address of the
destination. If this option is used together with
-A, ping probes only the addresses that are of
the specified address family. When used with the
-s option and npackets is not specified, ping
continuously probes the destination addresses in
a round robin fashion. If npackets is specified,
ping sends npackets number of probes to each IP
address of the destination and then exits.


-b
Bypass the global IPsec policy and send and
receive packets in the clear for this connection
only. This option can be used to troubleshoot
network connectivity independent of IPsec.
Because this option bypasses system-wide policy
for this connection, it can only be used by
superuser or a user granted the sys_net_config
privilege.


-c traffic_class
Specify the traffic class of probe packets. The
value must be an integer in the range from 0 to
255. Gateways along the path can route the probe
packet differently, depending upon the value of
traffic_class set in the probe packet. This
option is valid only on IPv6.


-d
Set the SO_DEBUG socket option.


-g gateway
Specify a loose source route gateway so that the
probe packet goes through the specified host
along the path to the target host. The maximum
number of gateways is 8 for IPv4 and 127 for
IPv6. Note that some factors such as the link MTU
can further limit the number of gateways for
IPv6.


-i interface_address
Specify the outgoing interface address to use for
multicast packets for IPv4 and both multicast and
unicast packets for IPv6. The default interface
address for multicast packets is determined from
the (unicast) routing tables. interface_address
can be a literal IP address, for example,
10.123.100.99, or an interface name, for example,
eri0, or an interface index, for example 2.


-l
Use to send the probe packet to the given host
and back again using loose source routing.
Usually specified with the -R option. If any
gateways are specified using -g, they are visited
twice, both to and from the destination. This
option is ignored if the -U option is used.


-n
Show network addresses as numbers. ping normally
does a reverse name lookup on the IP addresses it
extracts from the packets received. The -n option
blocks the reverse lookup, so ping prints IP
addresses instead of host names.


-p port
Set the base UDP port number used in probes. This
option is used with the -U option. The default
base port number is 33434. The ping utility
starts setting the destination port number of UDP
packets to this base and increments it by one at
each probe.


-r
Bypass the normal routing tables and send
directly to a host on an attached network. If the
host is not on a directly attached network, an
error is returned. This option can be used to
ping a local host through an interface that has
been dropped by the router daemon. See
in.routed(1M).


-s
Send one datagram per second and collect
statistics.


-t ttl
Specify the IPv4 time to live, or IPv6 hop limit,
for unicast and multicast packets. The default
time to live (hop limit) for unicast packets can
be set with the ndd module, /dev/icmp, using the
icmp_ipv4_ttl variable for IPv4 and the
icmp_ipv6_hoplimit variable for IPv6. The default
time to live (hop limit) for multicast is one
hop. See EXAMPLES. For further information, see
ndd(1M).


-v
Verbose output. List any ICMP (ICMP6) packets,
other than replies from the target host.


OPERANDS


host
The network host


EXAMPLES


Example 1: Using ping With IPv6




This example shows ping sending probe packets to all the IPv6 addresses
of the host xyz, one at a time. It sends an ICMP6 ECHO_REQUEST every
second until the user interrupts it.


istanbul% ping -s -A inet6 -a xyz
PING xyz: 56 data bytes
64 bytes from xyz (4::114:a00:20ff:ab3d:83ed): icmp_seq=0. time=0.479 ms
64 bytes from xyz (fec0::114:a00:20ff:ab3d:83ed): icmp_seq=1. time=0.843 ms
64 bytes from xyz (4::114:a00:20ff:ab3d:83ed): icmp_seq=2. time=0.516 ms
64 bytes from xyz (fec0::114:a00:20ff:ab3d:83ed): icmp_seq=3. time=4.943 ms
64 bytes from xyz (4::114:a00:20ff:ab3d:83ed): icmp_seq=4. time=0.485 ms
64 bytes from xyz (fec0::114:a00:20ff:ab3d:83ed): icmp_seq=5. time=2.201 ms
^C
----xyz PING Statistics----
6 packets transmitted, 6 packets received, 0% packet loss
round-trip (ms) min/avg/stddev = 0.479/1.583/4.943/1.823


Example 2: Using ndd to Set the icmp_ipv6_hoplimit




This example shows the ndd module, /dev/icmp, used to set the
icmp_ipv6_hoplimit.


# ndd -set /dev/icmp icmp_ipv6_hoplimit 100


EXIT STATUS


The following exit values are returned:

0
Successful operation; the machine is alive.


non-zero
An error has occurred. Either a malformed argument has been
specified, or the machine was not alive.


SEE ALSO


ifconfig(1M), in.routed(1M), ndd(1M), netstat(1M), rpcinfo(1M),
traceroute(1M), attributes(5), icmp(7P), icmp6(7P)


DIAGNOSTICS


ping: warning: ICMP responses received, but name service lookups are
taking a while. Use ping -n to disable name service lookups.

When the -n flag is not specified, ping tries to lookup the name
corresponding to the IP address that it received via name services.
If name services are unavailable, it may take time before the system
properly times out the name service lookups. As a result, it may
appear that no ICMP replies are being received when they in fact are.
This diagnostic indicates that this has occurred and indicates that
there are valid responses and that using the -n flag will stop this
from occurring.


ping: warning: timing accuracy diminished -- setsockopt SO_TIMESTAMP
failed

By default, the system attempts to use the SO_TIMESTAMP socket option
to allow for more accurate time stamps that reflect when the ICMP
echo replies were received by the system as opposed to when they were
received by the ping command. These differences may occur because an
operator stopped the process or because ping was blocked up behind a
name service look up. When this diagnostic is emitted, the ping
command will continue to function, but it will be doing the time
stamping itself, which may cause the timing intervals reported to be
longer than they actually are.


May 21, 2015 PING(1M)