1

尝试在 python 中使用原始套接字创建数据包嗅探器,并希望使用 struct.unpack 方法解析完整的 TCP 标头,但是 tcp 标头中的某些字段如 HLEN(4bits) 和偏移量、URG、ACK、PST、RST、SYN、FIN在位而不是 Byte 上。所以我的问题是如何从标头解析这些值!

4

1 回答 1

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)
于 2013-08-22T07:26:21.350 回答