我正在用 scapy 构建一个图层。该层具有 ConditionalFields:
class Foo(Packet):
name = "Foo"
fields_desc = [
ConditionalField(BitField("bar1", None, 4),
lambda pkt: pkt.bar1 is not None),
ConditionalField(BitField("bar2", None, 4),
lambda pkt: pkt.bar2 is not None),
ByteField("bar3", 0x0),
ByteField("bar4", 0x0)
]
现在如何检查是否设置了 bar1?分别 酒吧2?我写的 lambda 函数对我来说似乎是正确的,根据文档,它是这样使用的,但它不起作用。你知道我该如何解决这个问题吗?这个想法是,如果在我实例化类 Foo 时设置了bar1
和bar2
,它应该存在于数据包中,否则不存在。我不想只为这种情况做 2 个数据包。