我有一个用于存储IP地址的字段,我使用此代码将IPv4地址转换为整数,这样我可以将地址的可排序版本保存在单独的bigint字段中,以实现更自然的排序(基于this):
octets = ip.split('.')
return (int(octets[0]) * 256**3) + (int(octets[1]) * 256**2) + (int(octets[2]) * 256) + (int(octets[3]))
对于bigint字段来说,IPv6地址太大了,我该怎么做呢?在
有没有一种简单的方法来实现IPv6的整数转换呢?Python3似乎提供了“ipaddress”模块,但我使用的是2.7。我想支持各种各样的方法,把零放在地址之外。在
更新:我使用的是django1.5
我想我应该把IPv4地址分开,然后按列表排序。 与IPv6类似,我尝试在:,并将它们作为一个列表进行排序。在
把它打包成一个类可能是个好主意,以防某一天行为需要改变。这样,如果它确实发生了变化,那么更改就不会分散在代码中。在
最后我用这段代码把IP转换成整数:
按照克罗利克的建议,使用了分米尔菲尔德
相关问题 更多 >
编程相关推荐