summaryrefslogtreecommitdiff
path: root/doc/libnet.Pod
blob: 3396de1b8aa33504115916820feb2526ffaa2c92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
=pod

=encoding utf8

=head1 NAME

libnet - A C library for packet creation and injection

=head1 SYNOPSIS

B<#include E<lt>libnet.hE<gt>>

=head1 DESCRIPTION

libnet is a packet assembly library that provides a portable interface for
packet creation and injection.

It is a high-level API that allows an application programmer to construct and
inject network packets. libnet provides a 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 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 (L<traceroute(8)> and
L<ping(8)> were easily rewritten using libnet and L<pcap(3)>.

When building applications with libnet we recommend using L<pkg-config(1)> to
detect the precense and required version of libnet.  The L<libnet-config(1)>
script is still bundled in the libnet distribution, but is considered to be
deprecated in favor of L<pkg-config(1)>.  Both can be used to get compiler and
linker flags of the installed libnet library, as well as provide other useful
information.  For applications using GNU autotools, we recommend using the
PKG_PROG_PKG_CONFIG and PKG_CHECK_MODULES m4 macros.

B<NOTE>: If you are writing your application with libnet, include F<libnet.h>,
which will include any additional header for you, rather than including
F<libnet/libnet-functions.h>, F<libnet/libnet-macros.h> or any of the others.

=head1 BACKWARDS COMPATIBILITY

Your old code (circa libnet B<1.0.x>) WILL NOT WORK with libnet> B<E<gt>=1.1.x>.
See B<doc/MIGRATION> for easy steps on porting your old code.

=head1 SEE ALSO

L<pkg-config(1)>, L<libnet-config(1)>, L<libnet-functions(3)>, L<libnet-macros(3)>

=head1 AUTHORS

The original author of libnet is Mike D. Schiffman.

libnet has been maintained and extensively enhanced since 2009 by Sam Roberts.
It is currently maintained by the Libnet Maintainers at GitHub:

        <https://github.com/libnet/libnet>

=head1 BUGS

For bugs, questions, patch submissions, desirable enhancements, etc. see:

        <https://github.com/libnet/libnet/issues>

=head1 COPYRIGHT

libnet is licensed under the 3-Clause BSD License, meaning fully Open Source
and compatible with all GNU licenses.  Basically, you can do whatever you want
with it.

=cut