inet_aton/struct.unpack未返回正确结果
在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”文档。