oping - send ICMP ECHO_REQUEST to network hosts
] [-c count
] [-c count
] -f filename
] [-c count
] [-c count
] -f filename
uses ICMPv4 or ICMPv6 ECHO_REQUEST packets to measure a hosts
reachability and the network latency. In contrast to the original
(8) utility oping
can send ICMP packets to multiple hosts in
parallel and wait for all ECHO_RESPONSE packets to arrive. In contrast to the
utility (URL is listed in "SEE ALSO") oping
use both, IPv4 and IPv6 transparently and side by side.
is an ncurses-based front-end to liboping
ping statistics online and highlights aberrant round-trip times if the
terminal supports colors.
- Force the use of IPv4.
- Force the use of IPv6.
- -c count
- Send (and receive) count ICMP packets, then stop and exit.
- -i interval
- Send one ICMP packet (per host) each interval seconds. This can be
a floating-point number to specify sub-second precision.
- -t ttl
- Set the IP Time to Live to ttl. This must be a number between (and
including) 1 and 255. If omitted, the value 64 is
- -I address
- Set the source address to use. You may either specify an IP number or a
hostname. You cannot pass the interface name, as you can with GNU's
ping(8) - use the -D option for that purpose.
- -D interface name
- Set the outgoing network device to use.
- -f filename
- Instead of specifying hostnames on the command line, read them from
filename. If filename is -, read from
If oping is installed with the SetUID-bit, it will set the effective
UID to the real UID before opening the file. In the special (but common)
case that oping is owned by the super-user (UID 0), this
means that privileges are temporarily dropped before opening the file, in
order to prevent users from reading arbitrary files on the system.
If your system doesn't provide saved set-user IDs (this was an
optional feature before POSIX 2001), the behavior is different
because it is not possible to temporarily drop privileges. The
alternative behavior is: If the real user ID (as returned by
getuid(2)) and the effective user ID (as returned by
geteuid(2)) differ, the only argument allowed for this option is
"-" (i.e. standard input).
- -Q qos
- Specify the Quality of Service (QoS) for outgoing packets. This is
a somewhat tricky option, since the meaning of the bits in the IPv4 header
has been revised several times.
The currently recommended method is Differentiated Services which is
used in IPv6 headers as well. There are shortcuts for various predefined
per-hop behaviors (PHBs):
- Selects the Best Effort behavior. This is the default
- Selects the Expedited Forwarding (EF) per-hop behavior, as defined
in RFC 3246. This PHB is characterised by low delay, low
loss and low jitter, i.e. high priority traffic.
- Selects the Voice Admitted (VA) per-hop behavior, as defined in
RFC 5865. This traffic class is meant for Voice over
IP (VoIP) traffic which uses Call Admission Control (CAC) for
reserving network capacity.
- Selects one of 12 differentiated services code points (DSCPs),
which are organized in four classes with three priorities
each. Therefore, c must be a number between 1
through 4 and p must be a number between 1
through 3, for example "af13", "af22" and
"af41". In each class, the lower priority number takes
precedence over the higher priority number.
- Selects one of the eight Class Selector PHBs. n is a number
between 0 through 7. The class selectors have been defined
to be compatible to the Precedence field in the IPv4 header as
defined in RFC 791. Please note that "cs0" is
synonymous to "be".
The old definition of the same bits in the IPv4 header was as Type of
(ToS) field, specified in RFC 1349
. It defined
four possible values which have appropriate aliases. Please note that this use
of the bits is deprecated
and the meaning is limited to IPv4!
- Minimize delay
- Maximize throughput
- Maximize reliability
- Minimize monetary cost
Alternatively, you can also specify the byte manually. You can use either a
decimal number (0-255), a hexadecimal number (0x00-0xff) or an octal number
(00-0377) using the usual "0x" and "0" prefixes for
hexadecimal and octal respectively.
The printed lines will contain information about the QoS field of received
packets if either a non-standard QoS setting was used on outgoing packets or
if the QoS byte of incoming packets is not zero. In other words, the QoS
information is omitted if both, the outgoing and the incoming QoS bytes are
zero. The received byte is always interpreted as Differentiated Services
(DSCP) and Explicit Congestion Notification
if the deprecated Type of Service
(ToS) aliases were used to specify
the bits of outgoing packets.
- noping only -u forces UTF-8 output, -U disables UTF-8
output. If neither is given, the codeset is automatically determined from
- noping only Selects the graph to display.
- Do not show a graph.
- Show a graph with time on the x-axis, the y-axis shows the round-trip
time. This is the default graph.
If your terminal supports unicode and colors, they are used to improve the
precision of the data shown: a green box is drawn for round-trip times up
to one third of the configured timeout, the height representing the RTT.
Longer RTTs will start to fill the box yellow (with a green background)
and then red (with a yellow background). Lost packages are drawn as a bold
red explamation mark.
- Show a box plot where the x-axis, i.e. the width of the window, is
the round-trip time. The entire width of the window it the ping interval,
set with the -i option.
The box is sized so it contains 50% of the replies. The vertical line shows
the median. The whiskers are sized to contain 95% of the replies -- 2.5%
below the whiskers and 2.5% above.
^ ^ ^ ^ ^
2.75% 25% 50% 75% 97.5%
- Show a histrogram of the round-trip times. The width of the window
is taken as round-trip time from 0ms on the left to the interval
(the -i option, default 1000ms) on the right.
The height of the graph is scaled so that the most-used buckets vertically
fills the line. The buckets are colored green up to and including the 80th
percentile, yellow up to and including the 95th percentile and red for the
- -P percent
- Configures the latency percentile to report. percent must be a
number between zero and 100, exclusively in both cases. In general,
defaults to 95. If -c is given and a number less than 20,
this would be the same as the maximum. In this case the default is chosen
so that it excludes the maximum, e.g. if -c 5 is given, the
default is 80. The calculated percentile is based on the last 900
packets (15 minutes with the default interval).
- -Z percent
- If any hosts have a drop rate higher than percent, where
percent is a number between zero and 100 inclusively, exit with a
non-zero exit status. Since it is not possible to have a higher drop rate
than 100%, passing this limit will effectively disable the feature (the
default). Setting the option to zero means that the exit status will only
be zero if all replies for all hosts have been received.
The exit status will indicate the number of hosts with more than
percent packets lost, up to a number of 255 failing hosts.
If supported by the terminal, noping
will highlight the round-trip times
(RTT) using the colors green, yellow and red. Green signals RTTs that are in
the "expected" range, yellow marks moderately unusual times and
times that differ a lot from the expected value are printed in red.
The information used to categorize round-trip times is the percentile
RTTs in the 80th percentile are considered to be "normal" and are
printed in green. RTTs within the 95th percentile are considered
"moderately unusual" and are printed in yellow. RTTs above that are
considered to be "unusual" and are printed in red.
(8), <http://www.fping.com/>, liboping
liboping is written by Florian "octo" Forster <ff at octo.it>.
Its homepage can be found at <http://verplant.org/liboping/>.
Copyright (c) 2005-2011 by Florian "octo" Forster.