用数据库存储IP地址时可以将ip地址转换成整数存储,整数占用空间小,索引也会比较方便。
python自定义一个ip转换成整数的函数,同时提供了整数转换成ip地址的方法。
代码:
#!/usr/bin/env python
#
import socket, struct
def ip2long(ip):
"""
Convert an IP string to long
"""
packedIP = socket.inet_aton(ip)
return struct.unpack("!L", packedIP)[0]
例如,www.plcxue.com ip地址为:116.255.236.107,使用以上ip2long转换函数:
输出结果:
www.plcxue.com ip address is 1962929259
将整数转换成ip地址:
输出结果:
'127.0.0.1'