我有一个小问题需要解决,需要将形式为'xxx.xxx.xxx.xxx'的IP地址转换为整数表示,并能够从这种形式恢复回去。
def iptoint(ip):
return int(socket.inet_aton(ip).encode('hex'),16)
def inttoip(ip):
return socket.inet_ntoa(hex(ip)[2:].decode('hex'))
In [65]: inttoip(iptoint('192.168.1.1'))
Out[65]: '192.168.1.1'
In [66]: inttoip(iptoint('4.1.75.131'))
---------------------------------------------------------------------------
error Traceback (most recent call last)
/home/thc/<ipython console> in <module>()
/home/thc/<ipython console> in inttoip(ip)
error: packed IP wrong length for inet_ntoa`
有人知道如何修复这个问题吗?
inttoip
引发了一个TypeError: Odd-length string
错误。 - Ilkka