This library provides functions that have similar behavior as the
unix command-line utility ping. In particular, both emit ICMP echo requests
and wait for responses. This library uses a haskell implementation of ICMP
rather than invoking /bin/ping. This avoids the costly process of starting
a child process. Additionally, there are greater opportunities for reusing
sockets. The cost of this is that the user must ensure that one of these
is true:
The kernel parameter net.ipv4.ping_group_range has been configured
to allow pings to all IP addresses. (preferred solution)
The process is running with the the CAP_NET_RAW capability.
The process is running as root. (worst solution)