Преобразование из строки IP в целое число и обратно в Python

У меня небольшая проблема с моим скриптом, где мне нужно преобразовать ip в форме 'xxx.xxx.xxx.xxx' в целое число представление и вернитесь из этой формы.

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`

Кто-нибудь знает, как это исправить?

43
задан Maksym Polshcha 21 January 2015 в 11:59
поделиться