为什么这个解压缩的短解释不正确?

时间:2013-12-08 18:21:20

标签: python struct udp icmp unpack

我正在解压缩UDP报头(它本身就是ICMP响应的有效负载)。我正在尝试获取源和目标端口号。

以下是代码的相关部分:

udp_head = struct.unpack('HHHH', data[48:56])
print udp_head
print binascii.hexlify(struct.pack('H', udp_head[1]))

运行它会得到以下结果:

(42389, 39554, 2048, 61179)
829a

这是错误的,部分正确的。目标端口(列表中的第二项)应该是33434.因此它在第一行打印错误。但在第二行,它是正确的(0x829A == 33434)。

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

这会给你一个线索吗?

>>> print hex(33434)
0x829a
>>> print hex(39554)
0x9a82
>>>

这可能是字节顺序问题。