inet_aton and struct issue
David Bear
david.bear at asu.edu
Wed Aug 30 19:47:08 EDT 2006
Diez B. Roggisch wrote:
> David Bear schrieb:
>> I found this simple recipe for converting a dotted quad ip address to a
>> string of a long int.
>>
>> struct.unpack('L',socket.inet_aton(ip))[0]
>>
>> trouble is when I use this, I get
>>
>> struct.error: unpack str size does not match format
>>
>> I thought ip addresses were unsigned 32 bit integers.
>>
>> Is there a better way to take a dotted quad and convert it to a string
>> representation of an long int?
>
> Works for me:
>
> >>> import socket
> >>> import struct
> >>> ip = "127.0.0.1"
> >>> struct.unpack('L',socket.inet_aton(ip))[0]
> 2130706433L
>
I really wish it worked for me:
>>> struct.unpack('L', socket.inet_aton('129.219.120.129'))
Traceback (most recent call last):
File "<stdin>", line 1, in ?
struct.error: unpack str size does not match format
This is python packaged with Suse 9.3.
>>> dir(struct)
['__doc__', '__file__', '__name__', 'calcsize', 'error', 'pack', 'unpack']
>>> print struct.__file__
/usr/lib64/python2.4/lib-dynload/struct.so
could I have a broken python?
>
> Diez
--
David Bear
-- let me buy your intellectual property, I want to own your thoughts --
More information about the Python-list
mailing list