inet_aton/struct.unpack未返回正确结果

1 投票
1 回答
1189 浏览
提问于 2025-04-15 23:11

在Windows XP上使用Python 2.6.5时,我发现运行以下代码时得到的结果不对:

import struct
import socket
struct.unpack('L', socket.inet_aton('192.168.1.1'))[0]

这个代码返回了16885952,但我知道它应该返回3232235777。我是不是哪里搞错了?我该怎么解决这个问题呢?

1 个回答

8

你需要指定字节序。现在它把这个数字当成小端序来解释,但inet_aton返回的是大端序的数字。

struct.unpack('>L', socket.inet_aton('192.168.1.1'))[0]

这样做应该没问题,会返回你期待的数字。

可以参考一下Python的“struct”文档。

撰写回答