Здравствуйте!
Хотел спросить как мне из int 167772682
сделать ip адрес вида xxx.xxx.xxx.xxx
в mysql делал следующем образом inet_ntoa(столбец где хранятся такого 167772682 вида записи) as ip и все показывало
А как в python?
делаю
>>>import socket
>>> socket.inet_ntoa('3585395804')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
socket.error: packed IP wrong length for inet_ntoa
ошибка.
1. Если ты преобразование в ту сторону делал в mysql, то и обратное делать лучше в нем-же (при выборке).
2. В питоне inet_ntoa, inet_aton работаю с "32-bit packed binary format" а не с целым (см. документацию).
Если же всетки позарез нужно достать из такого числа как в mysql.
То надо сначала упаковать целое в бинари.
Например так:
import socket
import struct

i = 3232235777
print socket.inet_ntoa(struct.pack('!L',i))
Спасибо!
Очень помогло!