Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hello monks, Do anyone use use Net::Frame::Dump::Online?

I am trying to use Net::Frame... modules for creation ICMP packets. For example ping request packet. I am trying to do this as it described in documentation on the CPAN. And it works for creation packet (i see it by sniffer) but also I need to get a replay packet in my script (this packet came to NIC as I can see in sniffer).
In this case for getting reply I have to use module Net::Frame::Dump::Online like this:

... use Net::Frame::Dump::Online; ... my $oDump = Net::Frame::Dump::Online->new( dev => 'eth0', ); ... $oDump->start; # And finally, waiting for the response until ($oDump->timeout) { if (my $recv = $oSimple->recv($oDump)) { print "RECV:\n".$recv->print."\n"; last; } } ...

But it doesn't work..... the variable $recv is always undef ...

Please, if anyone know what can be issue here, help

Replies are listed 'Best First'.
Re: using use Net::Frame::Dump::Online;
by toolic (Bishop) on Jul 05, 2011 at 17:05 UTC
    I have never used Net::Frame::Dump::Online, but there is an example script (follow the MANIFEST link) which looks relevant: dump-online-onrecv.pl:
    #!/usr/bin/perl use strict; use warnings; my $oDump; my $dev = shift || die("Specify network interface to use\n"); use Net::Frame::Dump::Online; use Net::Frame::Simple; sub callOnRecv { my ($h, $data) = @_; print "Data: $data\n"; my $oSimple = Net::Frame::Simple->newFromDump($h); print $oSimple->print."\n"; } $oDump = Net::Frame::Dump::Online->new( dev => $dev, onRecv => \&callOnRecv, onRecvCount => 1, onRecvData => 'test', ); $oDump->start; END { $oDump && $oDump->isRunning && $oDump->stop }