Я хочу сделать что-то вроде следующегоДоступ к более низкие уровни полей с лямбда-функции в Scapy
class Upper(Packet):
name = "UpperLayer"
fields_desc = [
ConditionalField(IntField("Field",0xABCDEF00),
lambda pkt: pkt[IP].src == "1.2.3.4")
]
p = IP(src="1.2.3.4")/Upper()
Но это не работает - я предполагаю, потому что верхний слой Upper
не имеет никакой информации о нижнем IP
слое и поэтому не может получить доступ к полю src
. Но мне необходимо получить доступ к значению, хранящемуся на нижнем уровне. В протоколе, который я пытаюсь реализовать, это необходимо. Итак, как я мог это сделать?