Using python 2.6.5 on Windows XP, it seems I’m getting the wrong result when using the following code:
import struct
import socket
struct.unpack('L', socket.inet_aton('192.168.1.1'))[0]
This returns 16885952 while to my knowledge it should return 3232235777.
Am I doing something wrong here? How do I fix this?
You need to specify the endianess. Its interpreting the number as litle-endian, however inet_aton returns the number as big-endian.
This should work fine, and return the number you expected.
See the python documentation on “struct” for reference.