2011-01-04 7 views
0

Ich brauche Hilfe mit dem ConditionalField in Scapy. Ich habe Probleme mit der Lambda-Funktion, wie kann ich die Lambda-Funktion erhalten, um nach einer bestimmten Schicht in dem Paket zu suchen?Scapy ConditionalField Hilfe

Derzeit habe ich den Code

lamda pkt: pkt.haslayer(RTP) == 1 

Diese sieht nicht zur Arbeit erscheinen, ich glaube nicht, dass pkt den Inhalt der pkt enthält, wie kann ich dieses Problem umgehen?

Vielen Dank für jede Hilfe

+0

Zu wissen, was "nicht funktioniert" bedeutet in diesem Fall wäre hilfreich. Erhalten Sie einen Fehler oder filtert er einfach nicht, was Sie erwartet haben? Ich schrieb eine Antwort unter der Annahme der letzteren. – kindall

+0

Ich kann nicht herausfinden, wie man auf die Methoden/Attribute des gesamten Pakets zugreifen kann. Ich bekomme keinen Fehler, es seziert nicht richtig. Wenn ich nur herausfinden könnte, wie ich auf den vollen Paketinhalt zugreifen kann, könnte ich den Rest lösen :) – WizardsSleeve

Antwort

1

lambda pkt: pkt.haslayer(RTP) Versuchen. Meine Schätzung ist, dass haslayer() etwas zurückgibt, das von Python als True angesehen wird, aber nicht gleich 1 ist, so dass Ihr Vergleich mit 1 immer False zurückgibt.