LINUX.ORG.RU

[Perl]Не работает с фильтром

 


0

1

В продолжении старой темы http://www.linux.org.ru/forum/development/6422076
Взял для тестинга библиотеку Net::Pcap::Easy и написал на нем следущий код

#!/usr/bin/perl
use strict;
use warnings;

use Net::Pcap::Easy;

my $npe = Net::Pcap::Easy->new(
dev => «igb1»,
filter => «icmp»,
packets_per_loop => 10,
promiscuous => 1,

icmp_callback => sub { warn «ping or something!\n» },
);

1 while $npe->loop;
exit 0;

Но он работает только если filter пустой ,иначе он ни icmp ни tcp(это в другой проге но каркас аналогичен) не работает
OS FreeBSD 8.2 amd 64

P.S tcpdump с фильтрами работает

★★★★★

Последнее исправление: pinachet (всего исправлений: 1)
Ответ на: комментарий от hizel

>трафик в vlan-ах?
Нет,вроде бы

tcpdump работает с фильтром?

Да работает и без проблем

pinachet ★★★★★
() автор топика
Ответ на: комментарий от hizel

Увеличил timeout_in_ms больше 0, и все начало работать(хотя в synopsis и в примераъ везде 0 )
Почему так происходит(какая фундаментальная причина)?

use strict;
use warnings;
use Net::Pcap::Easy;

my $npe = Net::Pcap::Easy->new(
dev => «igb1»,
filter => «host 77.88.21.3»,
packets_per_loop => 10,
timeout_in_ms => 100, # 0ms means forever
promiscuous => 1, # true or false

icmp_callback => sub { warn «ping or something!\n» },
);

1 while $npe->loop;
exit 0;

pinachet ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.