Skip to content

PacketFu, a mid-level packet manipulation library for Ruby

License

Notifications You must be signed in to change notification settings

strotter/packetfu

 
 

Repository files navigation

PacketFu

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

It is maintained at code.google.com/p/packetfu and github.com/todb/packetfu (which repository will win?)

Documentation

PacketFu is rdoc-compatible, which means it’s sdoc compatible. In the same directory as this file, run “sdoc” by itself (gem install sdoc), and then 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

I tend to test with the following (with bash):

date > /tmp/tests.txt; for i in default 1.8.6-p420 1.8.7-p334 1.9.1-p431 1.9.2-p180 1.9.3-head
do rvm use $i >> /tmp/tests.txt
echo Testing with $i
echo $i >> /tmp/tests.txt; echo +++++++++++++++++++++++ >> /tmp/tests.txt
rvmsudo ./all_tests.rb >> /tmp/tests.txt; rspec . >> /tmp/tests.txt
done

Problem Platforms

  • 1.8.6-p420 – Has problems with pcaprub and capture/inject. Technically, these are pcaprub problems and not PacketFu problems, but PacketFu should at least fail better at them.

  • 1.9.1-p431 – Has problems with loading gems in general, see redmine.ruby-lang.org/issues/2404

  • 2.0.0-p0 – Has problems with binary encoding of strings that do not manifest in 1.9.x See github.com/todb/packetfu/issues/28

Passing Platforms

  • 1.9.1-p378

  • 1.8.7-p334

  • 1.9.2-p180 (suggested version)

  • 1.9.3-head

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 [email protected], with help from Open Source Land.

See LICENSE for licensing details.

About

PacketFu, a mid-level packet manipulation library for Ruby

Resources

License

Stars

Watchers

Forks

Packages

No packages published