Skip to forum content
PyDev
Форум python-разработчиков
You are not logged in.
Please login or register.
Root
»
Network
»
inet_ntoa
You must log in or register to post a new topic
Posts [ 1 to 4 of 4 ]
- Registered: Sept. 12, 2008, 3:49 p.m.
- Posts: 2
Здравствуйте!
Хотел спросить как мне из 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
ошибка.
- Registered: Sept. 19, 2007, 3:30 p.m.
- Posts: 182
1. Если ты преобразование в ту сторону делал в mysql, то и обратное делать лучше в нем-же (при выборке).
2. В питоне inet_ntoa, inet_aton работаю с "32-bit packed binary format" а не с целым (см. документацию).
- Registered: Sept. 19, 2007, 3:30 p.m.
- Posts: 182
Если же всетки позарез нужно достать из такого числа как в mysql.
То надо сначала упаковать целое в бинари.
Например так:
import socket
import struct
i = 3232235777
print socket.inet_ntoa(struct.pack('!L',i))
- Registered: Sept. 12, 2008, 3:49 p.m.
- Posts: 2
Root
»
Network
»
inet_ntoa