Параметры фильтра для функции sniff в scapy

Я работаю над инструментом на основе scapy, где в какой-то момент мне нужно обнюхать пакет на основе протокола и ip-адреса назначения

Я хотел бы знать о том, как можно использовать параметр фильтра в функции sniff (). Я попытался использовать формат в документации, но в большинстве случаев это приводит к таким проблемам. фильтр функции нюхать в scapy не работает должным образом .

тот, который я использовал, был

a=sniff(filter="host 172.16.18.69 and tcp port 80",prn = comp_pkt,count = 1)

спасибо заранее!

1 ответов


sniff() использует фильтр пакетов Беркли (BPF) синтаксис (тот же, что и tcpdump), вот несколько примеров:

пакеты от или к хосту:

host x.x.x.x

только сегменты TCP SYN:

tcp[tcpflags] & tcp-syn != 0

все ICMP, но эхо-запросы/ответы:

icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply