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

dod*_*gel 1 python

在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.我在这里做错了吗?我该如何解决?

Hen*_*rik 8

您需要指定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文档,请参阅.