我正在用scapy构建一个图层。此图层具有条件字段:scapy如何检查一个字段是否设置
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是否已设置? RESP。 BAR2?我写的lambda函数对我来说似乎是正确的,根据文档,它以这种方式使用,但它不起作用。你有什么想法我可以解决这个问题吗?这个想法是,如果我在实例化类Foo时设置了bar1
和bar2
,它应该出现在数据包中,否则不会。我不想为这种情况做2个数据包。