Annotation of embedaddon/libnet/README.md, revision 1.1.1.1

1.1       misho       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>