Libnet is a high-level API (toolkit) allowing the application programmer
to construct and inject network packets.
It provides a portable and simplified interface for low-level network
packet shaping, handling and injection.
Libnet hides much of the tedium of packet creation from the application
programmer such as multiplexing, buffer management, arcane packet header
information, byte-ordering, OS-dependent issues, and much more.
Libnet features portable packet creation interfaces at both the IP-layer
and link-layer, as well as a host of supplementary and complementary
functionality.
Using libnet, quick and simple packet assembly applications can be
whipped up with little effort.
With a bit more time, more complex programs can be written (Traceroute
and Ping were easily rewritten using libnet and libpcap).
