почему pcap_setfilter не вступил в силу - PullRequest
8 голосов
/ 15 мая 2019

Я использую libpcap в качестве lib для написания C-программы для перехвата будущих IP-адресов.мой фрагмент кода выглядит следующим образом:

struct bpf_program filter;
pcap_compile(pcap_handle, &filter, "icmp[icmptype]=0 and '(dst 16.11.26.100 or dst 16.11.27.100)'", 1, 0);
pcap_setfilter(pcap_handle, &filter);

Но это не сработало, я все еще мог видеть другие Dest Ips, а не только два вышеупомянутых Ips.

Ответы [ 2 ]

1 голос
/ 27 мая 2019

Вы всегда должны проверять наличие ошибок при рутинных вызовах библиотеки.Если бы вы проверили ошибки на pcap_compile(), вы бы увидели, что компиляция не удалась (из-за одинарных кавычек, хотя сообщение об ошибке, вероятно, будет просто "синтаксическая ошибка").

0 голосов
/ 25 мая 2019

Я исправил проблему, правильный ответ здесь:

"icmp[icmptype]=0 and (dst 16.11.26.100 or dst 16.11.27.100)"

Только что убрал единую квоту.

...