= PacketFu

{<img src="https://travis-ci.org/packetfu/packetfu.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/packetfu/packetfu]
{<img src="https://codeclimate.com/github/packetfu/packetfu.png" />}[https://codeclimate.com/github/packetfu/packetfu]

A library for reading and writing packets to an interface or to a
libpcap-formatted file.

It is maintained at https://github.com/packetfu/packetfu .

== Documentation

PacketFu is yard-compatible (as well as sdoc/rdoc, if you prefer). You
can generate local documentation easily with either `yard doc .` or
`sdoc`, and view doc/index.html with your favored browser. Once that's
done, navigate at the top, and read up on how to create a Packet or
Capture from an interface with show_live or whatever.

== Requirements

PcapRub:

$ rvm gem install pcaprub

Marshall Beddoe's PcapRub is required only for packet reading and
writing from a network interfaces (which is a pretty big only). PcapRub
itself relies on libpcap 0.9.8 or later for packet injection. PcapRub
also requires root privileges to access the interface directly.

=== Platforms

Given the security issues with older Rubies and the long-past [EOL for
1.8.x](http://www.ruby-lang.org/en/news/2011/10/06/plans-for-1-8-7/),
PacketFu is rather stuck on very recent versions of 1.9.3 (as of this
moment, the version to trust is 1.9.3-p484).

==== 1.8.x

EOL, no longer supported in any sense. PacketFu may or may not work.

==== 1.9.x

1.9.3-p484.

==== 2.x

Not yet vetted. I don't believe there's anything exciting in these
platforms, but there has been no attempt yet to perform formal testing.
I know, I'm behind the times.

== Examples

PacketFu ships with dozens and dozens of tests, built on Test::Unit.
These should give good pointers on how you're expected to use it. See
the /tests directory. Furthermore, PacketFu also ships with
packetfu-shell.rb, which should be run via IRB (as root, if you intend
to use your interfaces).

== Author

PacketFu is maintained primarily by Tod Beardsley todb@packetfu.com and
Jonathan Claudius claudijd@yahoo.com, with help from Open Source Land.

See LICENSE for licensing details.
