没有从inet_aton / struct.unpack返回正确的结果

时间:2010-05-26 11:41:19

标签: python

在Windows XP上使用python 2.6.5,使用以下代码时似乎得到了错误的结果:

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

这会返回16885952,据我所知它应该返回3232235777。 我在这里做错了吗?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:8)

您需要指定结束。它将数字解释为litle-endian,但是inet_aton将数字作为big-endian返回。

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

这应该可以正常工作,并返回您期望的数字。

请参阅有关“struct”的python文档以供参考。