|
Net::SnoopLog - Read snoop network packet logs, from RFC1761 snoop ver 2. Perl implementation. |
Net::SnoopLog - Read snoop network packet logs, from RFC1761 snoop ver 2. Perl implementation (not an interface).
use Net::SnoopLog;
$log = Net::SnoopLog->new(); $log->read(``/tmp/out01'');
@Indexes = $log->indexes;
foreach $index (@Indexes) { ($length_orig,$length_incl,$drops,$secs,$msecs) = $log->header($index); $data = $log->data($index);
# your code here
}
This module can read the data and headers from snoop ver 2 logs (those that obey RFC1761 - try ``man snoop'').
=item data (INDEX)
Takes an integer index number and returns the raw packet data. (This is usually Ethernet/IP/TCP data).
perl Makefile.PL make make test make install
ExtUtils::MakeMaker
Once you can read the raw packet data, the next step is read through the protocol stack. An Ethernet/802.3 example is,
($ether_dest,$ether_src,$ether_type,$ether_data) = unpack('H12H12H4a*',$data);
Keep an eye on CPAN for Ethernet, IP and TCP modules.
This reads snoop version 2 logs (the most common). There could be a new version in the distant future with a move to 64-bit timestamps - at which point this module will need updating.
Future versions should include the ability to write as well as read snoop logs. Also a memory efficient technique to process very large snoop logs (where the log size is greater than available virtual memory).
RFC 1761
Copyright (c) 2003 Brendan Gregg. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself
Brendan Gregg <brendan.gregg@tpg.com.au> [Sydney, Australia]
|
Net::SnoopLog - Read snoop network packet logs, from RFC1761 snoop ver 2. Perl implementation. |