octo's ping library

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.



liboping is a free software project and you’re very welcome to participate in and contribute to its development.


Source code is kept in a Git repository on GitHub. You can “clone” the repository with the following command. Patches are welcome anytime (see below).

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

Issues / bug tracker

We use GitHub issues to track bug reports and feature requests.

Pull requests / patches

Please open a Pull request on GitHub if you want to contribute code to liboping.

Mailing list

User questions are best asked on our mailing list. You need to subscribe before you can post to the list.


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