The Libnet Packet Construction Library

Page last updated: Mon Mar 1 17:58:24 PST 2004

I spoke on Libnet at the 2004 RSA conference. Pull down the presentation:

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 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).

Libnet was designed and is primarily maintained by Mike D. Schiffman (mike at infonexus dot com) and a host of other people (please see the libnet documentation for the complete list of contributers).

Libnet is distrubuted under the BSD license.

This is an open-source project. Donations are welcomed.

Join the Libnet mailing list.


Current 1.1.x Tree

Added in 1.1.1:

Coming in 1.1.2:

Latest Stable Version: 1.1.1

Latest Development Version: 1.1.2-rc-06


1.1.x Documenation and Resources

The 1.1.x tree is a complete rewrite and is more powerful and much easier to implement. Read the documentation. Also, my new book: Building Open Source Network Security Tools contains a full writeup on libnet 1.1.0.

Here is a fine write-up on 1.1.1 my Frenchy pal Fred Raynal wrote.

1.1.x Memory Structures and Miscellaneous


Deprecated Tree (unsupported)

Latest Version: 1.0.2a

1.0.x Resources

All of the libnet code may be found here.


Libnet Resources


Back to Projects