试图在python中使用原始套接字创建数据包嗅探器,并希望使用struct.unpack方法解析完整的TCP头,但是一些字段如HLEN(4bits)和offset,URG,ACK,PST,RST,SYN,FIN在tcp标头中的位不是字节。所以我的问题是如何从头部解析这些值!
答案 0 :(得分:0)
您可以使用:
以下是一个例子:
from ctypes import c_int32, c_uint32, Structure, Union
class _bits(Structure):
_fields_ = [
("odd", c_uint32, 1),
("half", c_uint32, 31),
]
class Int(Union):
_fields_ = [
("bits", _bits),
("number", c_uint32),
]
a = Int(number=12345)
a.bits.odd, a.bits.half
结果:
>>> a = Int(number=12345)
>>> a.bits.odd, a.bits.half
(1L, 6172L)