为什么这个未包装的短的解释不正确?

2024-10-02 16:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在解包一个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)。你知道吗

你知道为什么会这样吗?你知道吗


Tags: 代码目标dataheadstructudpprinticmp