Martin Topholm
xping is an terminal adhoc monitoring tool. It is useful to determine impact of scheduled disruption or discover subtle changes availability. It presents a visual interface much similar to mtr: time on xaxis with different hosts on yaxis, each echo-reply is drawn as a dot (.) and timeslots without replies are drawn with a question marks (?).
Shown here are hosts recovering from vPC withdrawal:
192.0.2.1 ........................................................ 192.0.2.11 .......????????????????................................. 192.0.2.12 ...?...???????????????.................................. 192.0.2.13 .......???????????????.................................. 192.0.2.14 .......???????????????.................................. 192.0.2.15 .......???????????????................?................. 192.0.2.16 .......???????????????.................................. 192.0.2.100 ......????????????????????????????????????????????...... 192.0.2.101 ......?????????????????????????????????????????????..... 192.0.2.102 ......????????????????????????????????????????????...... 192.0.2.103 ......????????????????????????????????????????????...... 192.0.2.104 ......???????????????????????????????????????????....... 192.0.2.105 ......???????????????????????????????????????????....... 192.0.2.203 ......???????????????????????????????????????????....... 192.0.2.204 ......???????????????????????????????????????????....... 192.0.2.209 ......???????????????????????????????????????????.......
A recent change may have caused a change in availability:
192.0.2.1 ..............................?.......................... 192.0.2.11 .................................................?....... 192.0.2.12 .....................................?................... 192.0.2.13 .............................?........................... 192.0.2.14 ........................................?................ 192.0.2.15 ................................................?........ 192.0.2.16 ......................................................... 192.0.2.20 ..................................?...................... 192.0.2.21 ..................................................?...... 192.0.2.22 ......................................................... 192.0.2.23 ..............................?.......................... 192.0.2.24 .....................................?................... 192.0.2.25 ......................................................?.. 192.0.2.23 ......................................................... 192.0.2.24 ..........................................?.............. 192.0.2.29 ..................................?......................
xping uses libevent and sends and receives packets in an asynchronous fashion. The focus is the host availability and round trip timings are not performed. Packet answered 20 seconds after it was sent registers as an answered packet. This is especially visible on mobile links where hundreths of packets may be in pipeline and suddenly change from timeout to answered.
xping offers some accoustic feedback with flags -a and -A respectively emit terminal bell (alarm) on answer and timeout. State transitions can also be used as trigger point, e.g. xping -AA 127.0.0.1 to trigger on answer-to-timeout states, defined as at least two answered packets followed by two unanswered (pattern ..??).
XPING(8) BSD System Manager's Manual XPING(8) NAME xping — A terminal based, adhoc, multi target icmp-echo tool. SYNOPSIS xping [-46ATVah] [-c count] [-i interval] [host [...]] DESCRIPTION xping is a simple PING program continiously probing multiple hosts using ICMP-ECHO. As packets are received dots are printed on the screen. Hosts not responding before next packet is due will get a questionmark in the display. The probing stops when SIGINT is received. Host to be probed are taken from argument list or read from stdin. OPTIONS -4 Force xping to resolve IPv4 address only. -6 Force xping to resolve IPv6 address only. -A Print a bell character on stdout when a packet is missed within interval. If given multiple times only print bell if host goes from a responsive state to unresponsive state (e.g. ..??). -C Color resolved hostname according to address family (IPv4 red, IPv6 green). -c count Send count probes in a non-interactive fashion. Default is to operate interactively and keep sending probes. -T Track changes to resolved hostname, honoring TTL values. If not specified xping will still retry unresolved hostnames. -V Print the "version" of xping and exit. -a Print a bell character on stdout on replies. If given multiple times only print bell if host goes from unresponsive to respon‐ sive (e.g. ??..). -h Display program usage and exit. -i interval Specifies interval between successive packets to a host. Default is 1.0 seconds. LEGEND . Reply received ? Timeout - interval password with no reply. # Unreachable - the packet could not be delivered. % Other error e.g. TTL expired in transit. @ Resolving - waiting for dns lookup to complete. ! sendto error e.g. permission denied or no route to destination. DIAGNOSTICS socket: Operation not permitted xping could not open a raw socket. Program should be setuid root or started as root. AUTHORS xping was written by Martin Topholm. xping uses libevent2 by Niels Provos and Nick Mathewson, and uthash and utlist by Troy D. Hanson. BUGS xping is not very informative on errors. Terminal display may flicker when running without ncurses. Probably more. BSD November 14, 2012 BSD