Libpcap для фильтрации портов src и dst

Я использую пример кода, предоставленный pylibpcap здесь, который используется как: sniff.py <interface> <expr>. <expr>, похоже, использует тот же синтаксис, что и tcpdump, но я не могу заставить его одновременно фильтровать исходный и целевой порты 5000.

При использовании tcpdump это будет похоже на tcpdump -i eth1 -n tcp port 5000.

Используя sniff.py, я пробовал такие вещи, как sniff.py eth1 "src port 5000 and dst port 5000", но это не работает.

Есть идеи?


person bulkmoustache    schedule 03.05.2014    source источник
comment
Должно сработать. Кстати, синтаксис называется BPF, если это поможет вам найти ресурсы.   -  person hobbs    schedule 03.05.2014
comment
Вы уверены, что не хотите src port 5000 or dst port 5000 (что то же самое, что просто port 5000)? С and вы получите только пакеты от 5000 до 5000.   -  person hobbs    schedule 03.05.2014
comment
Я также пробовал их, но они не захватывают оба пути. Только один :( Это заставляет меня поверить, что это проблема с кодом...   -  person bulkmoustache    schedule 03.05.2014


Ответы (1)


libpcap (или WinPcap в Windows; это порт libpcap для Windows) — это библиотека, которая обрабатывает рассматриваемый синтаксис фильтра; tcpdump использует libpcap, а pylibpcap — это оболочка вокруг libpap, поэтому они оба будут использовать один и тот же синтаксис фильтра.

Синтаксис фильтров в текущих версиях libpcap задокументирован в файле pcap-filter. справочная страница. В этом синтаксисе port N эквивалентно src port N or dst port N; src port N, dst port N и port N проверьте порты TCP и UDP, и SCTP. tcp port N, tcp src port N и tcp dst port N проверяют только порты TCP.

Попробуйте использовать port 5000 как в tcpdump, и в вашей программе. Если оба захватывают трафик только в одном направлении, проблема явно не в вашем коде. Попробуйте использовать port 5000 or (vlan and port 5000) (вам придется указать его в tcpdump, т.е.

tcpdump -i eth1 -n "tcp port 5000 or (vlan and tcp port 5000)"

и посмотрите, поможет ли это.

person Community    schedule 03.05.2014