octo's ping library

Home of liboping, oping and noping



liboping is a C library to generate ICMP echo requests, better known as “ping packets”. It is intended for use in network monitoring applications or applications that would otherwise need to fork ping(1) frequently. Included is a sample application, called oping, which demonstrates the library's abilities. It is like ping, ping6, and fping rolled into one. Since people are curious you might want to see an example output.

Screenshot of noping.
Screenshot of noping.

Starting with version 1.4.0, a second example application, noping, provides an ncurses-based front-end to liboping. Using curses windows it is able to display the ping statistics online (i.e. “live”). An aberrant behavior detection highlights all round-trip times that are unusually high or low.

liboping was inspired by ping, libping (homepage vanished) and fping: It differs from these existing solutions in that it can ”ping” multiple hosts in parallel using IPv4 or IPv6 transparently. Other design principles were an object oriented interface, simplicity and extensibility: Is simple because there are only a few interface functions and no external dependencies. It's extensible since all (internal) data is kept in “opaque data types”, so the storage may change or be extended without applications noticing it.



Debian package

Users of Debian GNU/Linux and Ubuntu can install the oping, liboping0 and liboping-dev packages using Apt and their favorite Debian-mirror.

Development version

The development files are kept on Github. You can “clone” the repository with the following command. Patches are welcome anytime. :)

git clone git://github.com/octo/liboping.git


The only documentation right now are the manpages. You can find online versions here:

License information

liboping is distributed under the LGPL, version 2.1. The oping and noping utilities are licensed under the GPL, version 2. The license can also be found in the COPYING file in the source tarball.