一尘不染

将IP字符串转换为数字,反之亦然

django

我将如何使用python将IP地址转换为str十进制数字,反之亦然?

例如,对于IP 186.99.109.000 <type'str'>,我想使用易于存储在数据库中的十进制或二进制形式,然后检索它。


阅读 418

收藏
2020-03-29

共1个答案

一尘不染

将IP字符串转换为长整数:

import socket, struct

def ip2long(ip):
    """
    Convert an IP string to long
    """
    packedIP = socket.inet_aton(ip)
    return struct.unpack("!L", packedIP)[0]

另一种方式:

>>> socket.inet_ntoa(struct.pack('!L', 2130706433))
'127.0.0.1'
2020-03-29