Net::Analysis::EventLoop - generate a stream of packets |
return Net::Analysis::Packet->new ({to => "$ip_obj->{dest_ip}:$tcp_obj->{dest_port}", from => "$ip_obj->{src_ip}:$tcp_obj->{src_port}", flags => $tcp_obj->{flags}, data => $tcp_obj->{data}, seqnum => $tcp_obj->{seqnum}, acknum => $tcp_obj->{acknum}, pkt_number => $self->{pkt_number}++,
# These are turned into the object $pkt->{time} tv_sec => $wire_hdrs->{tv_sec}, tv_usec => $wire_hdrs->{tv_usec}, } );
Net::Analysis::EventLoop - generate a stream of packets
use Net::Analysis::Dispatcher; use Net::Analysis::EventLoop;
my ($d) = Net::Analysis::Dispatcher->new(); my ($el) = Net::Analysis::EventLoop->new (dispatcher => $d);
... register some listener modules onto the dispatcher ...
# Now run it over a file ... $el->loop_file (filename => 'some.tpcdump');
# ... or run it over many files ... $d->emit_event (name => 'setup'); # need to handle setup/teardown by hand foreach (qw(file1 file2 ...)) { $el->loop_file (filename => $_, no_setup_teardown => 1); } $d->emit_event (name => 'teardown');
# ... or try live capture (using the same filter syntax as tcpdump et al) $el->loop_net (filter => 'port 80');
exit 0;
This module provides the glue between the main dispatcher/listener stuff, and the underlying source of packets.
It gets packets (currently via the NetPacket layer on top of Net::Pcap), turns them into the Net::Analysis::Packet manpages, and then dispatches them to any listeners who care about 'tcp_packets'.
Current limitations:
None by default.
Net::Analysis::Dispatcher
Adam B. Worrall, <worrall@cpan.org>
Copyright (C) 2004 by Adam B. Worrall
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available.
Net::Analysis::EventLoop - generate a stream of packets |