在 Windows XP 上使用 python 2.6.5,使用以下代码时似乎得到了错误的结果:
import struct
import socket
struct.unpack('L', socket.inet_aton('192.168.1.1'))[0]
这将返回 16885952,而据我所知它应该返回 3232235777。 我在这里做错了什么吗?我该如何解决这个问题?
请您参考如下方法:
您需要指定字节顺序。它将数字解释为小端,但是 inet_aton 将数字返回为大端。
struct.unpack('>L', socket.inet_aton('192.168.1.1'))[0]
这应该可以正常工作,并返回您预期的数字。
请参阅有关“struct”的 python 文档以供引用。
