我想要一个1字节的FieldLenField
在对应的FieldListField
中只允许256个项目,我该怎么做
from scapy import *
class Foo(Packet):
name = "Foo"
fields_desc = [
ShortField("id", random.getrandbits(16)),
FieldLenField("len", None, count_of="pld"),
FieldListField("pld", None, IPField("", "0.0.0.0"), count_from=lambda pkt: pkt.len)
]
谢谢你的帮助
将FieldLenField设置为1字节
您需要覆盖
FieldLenField
的默认长度,当前为H
H
是Python结构库中的一个format character,它是一个无符号的2字节(0-65535)。要强制一个字节无符号,请改用B
:运行此命令,我们将得到2个随机字节作为ID,1个字节作为len,如下所示:
b'\x21\xea\x00'
其中最后一个字节是我们设置的默认0
验证
相反,如果我们尝试将
len
的值设置为300,这超出了区间[0255],我们将得到一个错误:相关问题 更多 >
编程相关推荐