use Net::PcapUtils; use NetPacket::IP; use NetPacket::UDP; use NetPacket::Ethernet qw/:types/; use strict; Net::PcapUtils::loop( sub { my ($arg, $header, $packet) = @_; my $ethernet = NetPacket::Ethernet->decode($packet); if ($ethernet->{'type'} == ETH_TYPE_IP) { my $ip = NetPacket::IP->decode($ethernet->{'data'}, $ethernet); my $udp = NetPacket::UDP->decode($ip->{'data'}); . . print $ip->{'src_ip'}, ":", $udp->{'src_port'}, " -> ", $ip->{'dest_ip'}, ":", $udp->{'dest_port'}, "\n"; } }, 'DEV' => 'eth0', # 'FILTER' => 'udp dst host 192.168.1.1' );