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