Steffen Ullrich > Net-PcapWriter-0.7 > Net::PcapWriter

Download:
Net-PcapWriter-0.7.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.7   Source   Latest Release: Net-PcapWriter-0.710_2

NAME ^

Net::PcapWriter - simple creation of pcap files from code

SYNOPSIS ^

 use Net::PcapWriter;
 my $writer = Net::PcapWriter->new('test.pcap');
 my $conn = $writer->tcp_conn('1.2.3.4',1234,'5.6.7.8',80);

 # this will automatically add syn..synack..ack handshake to pcap
 # each write will be a single packet
 $conn->write(0,"POST / HTTP/1.0\r\nContent-length: 3\r\n\r\n");
 $conn->ack(1); # force ack from server

 # send another packet w/o forcing ack
 $conn->write(0,"abc");

 # client will no longer write
 $conn->shutdown(0);

 # this will automatically add ack to last packet
 $conn->write(1,"HTTP/1.0 200 Ok\r\nContent-length: 10\r\n\r\n");
 $conn->write(1,"0123456789");

 # will automatically add remaining FIN+ACK
 undef $conn;

DESCRIPTION ^

With Net::PcapWriter it is possible to create pcap files within a program without capturing any data. This is useful for setting up test data without setting up the needed infrastructure for data creation and capturing.

The following methods are supported:

$class->new([$filename|$handle])

Creates new object. If file name is given it will be opened for writing, if file handle is given it will be used. Otherwise the pcap data will be written to STDOUT. Will write pcap header for DLT_RAW to pcap file.

$writer->packet($pkt,[$timestamp])

Will write raw IP packet $pkt with $timestamp in pcap file. $timestamp can be time_t (seconds), float (like time_t, but with higher resolution) or <[$sec,$msec]> like in <struct timeval>. If $timestamp is not given will use Time::HiRes::gettimeofday.

$writer->tcp_conn($src,$sport,$dst,$dport)

Will return Net::PcapWriter::TCP object, which then provides the following methods:

$tcpconn->write($dir,$data,[$timestamp])

Will write the given data for the direction $dir (0 are data from client to server, 1 the other way). Will write TCP handshake if not done yet.

$tcpconn->ack($dir)

Will write an empty message with an ACK from direction $dir.

$tcpconn->shutdown($dir)

Will add FIN+ACK for shutdown from direction $dir unless already done.

undef $tcpconn

Will call shutdown for both $dir before destroying connection object.

$writer->tcp_conn($src,$sport,$dst,$dport)

Will return Net::PcapWriter::TCP object, which then provides the following methods:

$tcpconn->write($dir,$data,[$timestamp])

Will write the given data for the direction $dir (0 are data from client to server, 1 the other way). Will write TCP handshake if not done yet.

BUGS ^

Only supports IPv4 at the moment.

AUTHOR ^

Steffen Ullrich <sullr@cpan.org>

syntax highlighting: