Использовать несколько фильтров в функции "sniff" в Scapy - PullRequest
0 голосов
/ 16 мая 2018

Мой друг и я в настоящее время пишем приложение на Python с использованием библиотеки Scapy. У нас есть графический интерфейс, где мы можем выбирать фильтры и протоколы. Мы хотим прослушать сеть, используя один или несколько фильтров, но не знаем, как это сделать. На данный момент мы попробовали следующий код:

capture=scapy.sniff(filter="tcp and udp",timeout=5)
print(capture)

Работает хорошо, но нюхает, используя только первый фильтр (в данном случае фильтр tcp). Мы также попробовали следующий код, но тот же:

capture1=scapy.sniff(filter="tcp",timeout=5)
capture2=scapy.sniff(filter="udp",timeout=5)
print(capture1)
print(capture2)

Итак, можно ли прослушивать, используя более одного фильтра, и если да, у вас есть идеи?

Спасибо

1 Ответ

0 голосов
/ 17 мая 2018

Вы говорите Scapy, чтобы прослушивать пакеты, которые являются одновременно TCP и UDP.

Когда я пытаюсь это сделать (Linux, текущая версия разработки Scapy), я получаю предупреждение tcpdump: expression rejects all packets, и фильтр не применяется.

Вы, вероятно, хотите использовать or вместо and: capture=scapy.sniff(filter="tcp or udp",timeout=5).

...