在Windows XP上使用python 2.6.5,使用以下代码时似乎得到了错误的结果:
import struct
import socket
struct.unpack('L', socket.inet_aton('192.168.1.1'))[0]
Run Code Online (Sandbox Code Playgroud)
这返回16885952,据我所知它应该返回3232235777.我在这里做错了吗?我该如何解决?
您需要指定endianess.它将数字解释为litle-endian,但是inet_aton将数字作为big-endian返回.
struct.unpack('>L', socket.inet_aton('192.168.1.1'))[0]
Run Code Online (Sandbox Code Playgroud)
这应该工作正常,并返回您期望的数字.
有关"struct"的python文档,请参阅.