Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  NET::FRAME::DUMP::ONLINE (3)

.ds Aq ’


Net::Frame::Dump::Online - tcpdump like implementation, online mode



   use Net::Frame::Dump::Online;

   # Simply create a Dump object
   my $oDump = Net::Frame::Dump::Online->new(
      dev => eth0,


   # Gather frames
   while (1) {
      if (my $f = $oDump->next) {
         my $raw            = $f->{raw};
         my $firstLayerType = $f->{firstLayer};
         my $timestamp      = $f->{timestamp};


   # Create a Dump object, using on-event loop
   sub callOnRecv {
      my ($h, $data) = @_;
      print "Data: $data\n";
      my $oSimple = Net::Frame::Simple->newFromDump($h);
      print $oSimple->print."\n";

   my $oDumpEvent = Net::Frame::Dump::Online->new(
      dev         => eth0,
      onRecv      => \&callOnRecv,
      onRecvCount => 1,
      onRecvData  => test,

   # Will block here, until $onRecvCount packets read, or a stop() call has
   # been performed.

   # Default parameters on creation
   my $oDumpDefault = Net::Frame::Dump::Online->new(
      dev            => undef,
      timeoutOnNext  => 3,
      timeout        => 0,
      promisc        => 0,
      unlinkOnStop   => 1,
      file           => "netframe-tmp-$$.$int.pcap",
      filter         => ,
      overwrite      => 0,
      isRunning      => 0,
      keepTimestamp  => 0,
      onRecvCount    => -1,
      frames         => [],


This module implements a tcpdump-like program, for live capture from networks.


<B>devB> The network interface to listen on. No default value.
<B>timeoutOnNextB> Each time you call <B>nextB> method, an internal counter is updated. This counter tells you if you have not received any data since <B>timeoutOnNextB> seconds. When a timeout occure, <B>timeoutB> is set to true.
<B>timeoutB> When <B>timeoutOnNextB> seconds has been reached, this variable is set to true, and never reset. See <B>timeoutResetB> if you want to reset it.
<B>snaplenB> If you want to capture a different snaplen, set it a number. Default to 1514.
<B>promiscB> By default, interface is not put into promiscuous mode, set this parameter to true if you want it.
<B>unlinkOnStopB> When you call <B>stopB> method, the generated .pcap file is removed, unless you set this parameter to a false value.
<B>onRecvB> If you place a reference to a sub in this attribute, it will be called each time a packet is received on the interface. See <B>SYNOPSISB> for an example usage.
<B>onRecvDataB> This parameter will store additional data to be passed to <B>onRecvB> callback.
<B>onRecvCountB> By default, it is set to read forever packets that reach your network interface. Set it to a positive value to read only <B>onRecvCountB> frames.
The following are inherited attributes:
<B>fileB> Name of the generated .pcap file. See <B>SYNOPSISB> for the default name.
<B>filterB> Pcap filter to use. Default to no filter.
<B>overwriteB> Overwrites a .pcap file that already exists. Default to not.
<B>firstLayerB> Stores information about the first layer type contained on read frame. This attribute is filled only after a call to <B>startB> method.
<B>isRunningB> Returns true if a call to <B>startB> has been done, false otherwise or if a call to <B>stopB> has been done.
<B>keepTimestampB> Sometimes, when frames are captured and saved to a .pcap file, timestamps sucks. That is, you send a frame, and receive the reply, but your request appear to have been sent after the reply. So, to correct that, you can use <B>Net::Frame::DumpB> own timestamping system. The default is 0. Set it manually to 1 if you need original .pcap frames timestamps.


<B>newB> (hash) Object constructor. You can pass attributes that will overwrite default ones. See <B>SYNOPSISB> for default values.
<B>startB> When you want to start reading frames from network, call this method.
<B>stopB> When you want to stop reading frames from network, call this method.
<B>nextB> Returns the next captured frame; undef if none awaiting. Each time this method is called, a comparison is done to see if no frame has been captured during <B>timeoutOnNextB> number of seconds. If so, <B>timeoutB> attribute is set to 1 to reflect the pending timeout.
<B>storeB> (<B>Net::Frame::SimpleB> object) This method will store internally, sorted, the <B>Net::Frame::SimpleB> object passed as a single parameter. <B>getKeyB> methods, implemented in various <B>Net::Frame::LayerB> objects will be used to efficiently retrieve (via <B>getKeyReverseB> method) frames.

Basically, it is used to make <B>recvB> method (from <B>Net::Frame::SimpleB>) to retrieve quickly the reply frame for a request frame.

<B>getFramesForB> (<B>Net::Frame::SimpleB> object) This will return an array of possible reply frames for the specified <B>Net::Frame::SimpleB> object. For example, reply frames for a UDP probe will be all the frames which have the same source port and destination port as the request.
<B>flushB> Will flush stored frames, the one which have been stored via <B>storeB> method.
<B>timeoutResetB> Reset the internal timeout state (<B>timeoutB> attribute).
<B>getStatsB> Tries to get packet statistics on an open descriptor. It returns a reference to a hash that has to following fields: <B>ps_recvB>, <B>ps_dropB>, <B>ps_ifdropB>.
<B>isSonB> These methods will tell you if your current process is respectively the father, or son process of <B>Net::Frame::Dump::OnlineB> object.




Patrice <GomoR> Auffret


Copyright (c) 2006-2014, Patrice <GomoR> Auffret

You may distribute this module under the terms of the Artistic license. See LICENSE.Artistic file in the source distribution archive.

Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.20.3 NET::FRAME::DUMP::ONLINE (3) 2014-12-09

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.