Holen Sie TCP-Flags mit Scapy
Ich bin Parsen eine PCAP-Datei und ich brauche zum extrahieren von TCP-flags (SYN, ACK, PSH, URG, ...).
Ich bin mit der packet['TCP'].flags
Wert an, um alle flags auf einmal.
pkts = PcapReader(infile)
for p in pkts:
F = bin(p['TCP'].flags)
print F, bin(F), p.summary()
# manual flags extraction from F
Gibt es eine Möglichkeit, erhalten Sie einen einzelnen TCP-flag nicht manuell extrahieren aus packet['TCP'].flags
Wert?
Definieren Sie die intelligentere? Wie sind Sie manuell tun es bereits?
Sie sagen also, der obige Ansatz funktioniert? Was ist das Problem mit dem code?
Sie sagen also, der obige Ansatz funktioniert? Was ist das Problem mit dem code?
InformationsquelleAutor auino | 2013-12-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Normalerweise die übliche Weise zu behandeln FLAGS ist ein bitmap-und bitweise Operatoren. Wenn Ihr
Packet
Klasse keinen bestimmten Methode zu testen, für die Fahnen, das beste, was Sie tun können, IMHO ist es:Und testen Sie wie folgt:
Leider python nicht
switch
Aussage zu machen, diese mehr elegant, aber es ist eigentlich völlig egal.Hoffe, das hilft!
InformationsquelleAutor Paulo Bu
Sie können die
Packet.sprintf()
Methode:Wenn Sie wollen, dass die "langen" Namen, verwenden Sie eine
dict
statt einer langenif
...elif
... Ausdruck (dict
werden Häufig verwendet, in Python, als würden Sie einenswitch
in anderen Sprachen):InformationsquelleAutor Pierre
Weitere option für die Aufzeichnung, die nicht existieren durch die Zeit diese Frage gestellt wurde. Es funktioniert mit Strom Scapy Entwicklung version (die erste Veröffentlichung mit dieser änderung wird 2.4.0; 2.4.0 rc* auch).
Können Sie jetzt mit
str()
auf der flag-Wert:InformationsquelleAutor Pierre
Funktioniert das auch.
InformationsquelleAutor Dragonborn