web-dev-qa-db-fra.com

Options de filtrage pour la fonction sniff en scapy

Je travaille sur un outil basé sur scapy où à un moment j'ai besoin de renifler un paquet basé sur le protocole et l'adresse IP de la destination

J'aimerais savoir comment utiliser l'option de filtre dans la fonction sniff (). J'ai essayé d'utiliser le format dans la documentation, mais la plupart du temps, cela entraîne des problèmes comme celui-ci. le filtre de la fonction sniff en scapy ne fonctionne pas correctement .

Celui que j'ai utilisé était

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

Merci d'avance!

10
Venkat Ramana

sniff() utilise Berkeley Packet Filter (BPF) syntaxe (le même que tcpdump), voici quelques exemples:

Paquets depuis ou vers l'hôte:

Host x.x.x.x

Uniquement TCP SYN:

tcp[tcpflags] & tcp-syn != 0

Tout ICMP mais les demandes/réponses d'écho:

icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply
15
Jeff Bencteux