File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libnet / README.md
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Sep 27 11:11:37 2023 UTC (8 months ago) by misho
Branches: libnet, MAIN
CVS tags: v1_2p1, HEAD
Version 1.2p1

    1: [![Appveyor Status][]][Appveyor] [![Travis Status][]][Travis] [![CodeDocs Status][]][CodeDocs]
    2: 
    3: Portable Packet Construction and Injection
    4: ==========================================
    5: 
    6: Libnet is an API to help with the construction and injection of network
    7: packets.  It provides a portable framework for low-level network packet
    8: writing and handling (use libnet in conjunction with libpcap and you can
    9: write some really cool stuff).  Libnet includes packet creation at the
   10: IP layer and at the link layer as well as a host of supplementary and
   11: complementary functionality.
   12: 
   13: Libnet is very handy with which to write network tools and network test
   14: code.  Some projects, available in Debian/Ubuntu and OpenBSD, using
   15: libnet are:
   16: 
   17: - [arping](https://github.com/ThomasHabets/arping)
   18: - [ettercap](https://www.ettercap-project.org/)
   19: - [ipguard](http://ipguard.deep.perm.ru/)
   20: - [isic](http://isic.sourceforge.net/)
   21: - [nemesis](https://troglobit.com/projects/nemesis/)
   22: - [packit](http://packetfactory.openwall.net/projects/packit/)
   23: - [tcptraceroute](https://web.archive.org/web/20130424094134/http://michael.toren.net/code/tcptraceroute/)
   24: - [yersinia](https://web.archive.org/web/20180522141004/http://www.yersinia.net/)
   25: 
   26: See the man page and sample test code for more detailed information.
   27: Online documentation is available at https://codedocs.xyz/libnet/libnet/
   28: 
   29: > **NOTE:** Legacy code written for *libnet-1.0.x* is unfortunately
   30: >           **incompatible** with *libnet-1.1.x* and later.  
   31: >           See the [Migration Guide](doc/MIGRATION.md) for porting help.
   32: 
   33: 
   34: Building
   35: --------
   36: 
   37: First download the [latest release][] from GitHub.  Libnet employs the
   38: [GNU configure and build system][autotools].  The release tarballs and
   39: zip files ship with a pre-built `configure` script:
   40: 
   41:     tar xf libnet-x.y.z.tar.gz
   42:     cd libnet-x.y.z/
   43:     ./configure && make
   44:     sudo make install
   45: 
   46: To list available options, type <kbd>./configure --help</kbd>
   47: 
   48: ### Building from GIT/GitHub
   49: 
   50: When building from GIT, use <kbd>./autogen.sh</kbd> to generate the
   51: `configure` script.  For this you need the full suite of the GNU
   52: autotools: autoconf (>=2.69), automake (>=1.14), libtool (>=2.4.2).
   53: 
   54: How to install the dependencies varies by system, but on many Debian derived
   55: systems, `apt` can be used:
   56: 
   57:     sudo apt install autoconf automake libtool
   58: 
   59: ### Building the Documentation
   60: 
   61: To build the documentation (optional) you need doxygen and pod2man:
   62: 
   63:     sudo apt install doxygen
   64:     sudo apt install pod2man || sudo apt install perl
   65: 
   66: For neat graphics in the HTML documentation, also install graphviz.
   67: There is also a PDF version of the docs, to build that you need quite a
   68: few more packages:
   69: 
   70:     sudo apt install texlive-extra-utils texlive-latex-extra \
   71:                      texlive-fonts-recommended latex-xcolor  \
   72:                      texlive-font-utils
   73: 
   74: For Microsoft CHM docs you need the HTML Help Workshop, which is part
   75: of Visual Studio: http://go.microsoft.com/fwlink/p/?linkid=154968, on
   76: UNIX and GNU/Linux systems, see `chmcmd`, which is available in the
   77: [FreePascal](http://www.freepascal.org/) suite:
   78: 
   79:     sudo apt install fp-utils-3.0.4
   80: 
   81: 
   82: Using -lnet
   83: -----------
   84: 
   85: Libnet is installed as a library and a set of include files.  The main
   86: include file to use in your program is:
   87: 
   88:     #include <libnet.h>
   89: 
   90: To get the correct search paths to both the header and library files,
   91: use the standard `pkg-config` tool:
   92: 
   93:     $ pkg-config --libs --static --cflags libnet
   94:     -I/usr/local/include -L/usr/local/lib -lnet
   95: 
   96: The prefix path `/usr/local/` shown here is only the default.  Use the
   97: `configure` script to select a different prefix when installing libnet.
   98: 
   99: For GNU autotools based projects, use the following in `configure.ac`:
  100: 
  101:     # Check for required libraries
  102:     PKG_CHECK_MODULES([libnet], [libnet >= 1.2])
  103: 
  104: and in your `Makefile.am`:
  105: 
  106:     proggy_CFLAGS = $(libnet_CFLAGS)
  107:     proggy_LDADD  = $(libnet_LIBS)
  108: 
  109: 
  110: Origin & References
  111: -------------------
  112: 
  113: Libnet is widely used, but had been unmaintained for a long time and its
  114: author unreachable.  This version was forked from the 1.1.3 release
  115: candidate from [packetfactory.net][origin], bug fixed, developed, and
  116: re-released.
  117: 
  118: Use GitHub issues and pull request feature for questions and patches:
  119: 
  120:   http://github.com/libnet/libnet
  121: 
  122: Some old docs are available at:
  123: 
  124:   http://packetfactory.openwall.net/projects/libnet/index.html
  125: 
  126: -------------------------------------------------------------------------
  127: - v1.1 (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>  
  128:   http://www.packetfactory.net/libnet
  129: - v1.1.3 and later (c) 2009 - 2013 Sam Roberts <vieuxtech@gmail.com>  
  130:   http://github.com/libnet/libnet
  131: -------------------------------------------------------------------------
  132: 
  133: [latest release]:  https://github.com/libnet/libnet/releases
  134: [autotools]:       https://autotools.io/
  135: [origin]:          http://packetfactory.openwall.net/projects/libnet/
  136: [Appveyor]:        https://ci.appveyor.com/project/troglobit/libnet
  137: [Appveyor Status]: https://ci.appveyor.com/api/projects/status/fkw05hw8cysfl2p1?svg=true
  138: [Travis]:          https://travis-ci.org/libnet/libnet
  139: [Travis Status]:   https://travis-ci.org/libnet/libnet.png?branch=master
  140: [CodeDocs]:        https://codedocs.xyz/libnet/libnet/
  141: [CodeDocs Status]: https://codedocs.xyz/libnet/libnet.svg

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>