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

问题描述

将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'

解决方法

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

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