tcpdump: Wie kann ich das Ende eines Pakets bei Echtzeit-Captures erkennen?

1092
dave

Ich nehme Pakete mit tcpdump für die Echtzeitverarbeitung auf. Ich verwende die IEEE_80211_RADIO-Header und verarbeite die Ausgabe in einem Python 3-Skript. Mein Aufruf sieht aktuell so aus:

tcpdump -IUnSA -y IEEE802_11_RADIO -i $iface

Mit -A oder -x kann ich den Anfang des nächsten Pakets erkennen, da sich die Header-Details vom Paketdump unterscheiden, das Ende des aktuellen Pakets jedoch nicht. Gibt es eine Möglichkeit, das Ende des aktuellen Pakets in diesem Zusammenhang zu erkennen?

(Eine akzeptable Alternative für meine Anwendung besteht darin, die Paketlänge in der Header-Zusammenfassung zu drucken und das Drucken des Paketdumps zu vermeiden. Dies ist möglich, wenn Sie die Flags -e oder -v in anderen Kontexten verwenden, aber diese scheinen die Paketlänge nicht zu drucken Kombination mit dem Rest meines Anrufs.)

0
Haben Sie überlegt, stattdessen das binäre _pcap_-Format zu verarbeiten? (Oder sogar libpcap oder scapy direkt von Python aus verwenden?) Das ist das, was andere Software auch macht. grawity vor 6 Jahren 0
Ich hatte versucht, libpcap von C zu konsumieren, aber meine C-Chops waren der Aufgabe nicht gewachsen, also wechselte ich zu dieser Python / Tcpdump-Lösung. Scapy sieht zwar ideal aus, also werde ich es versuchen - Danke, dass Sie es erwähnt haben! dave vor 6 Jahren 0

0 Antworten auf die Frage