可能重复:
python和ip范围
如何获取IP地址列表?
我在文本文件中有很多ip范围:
1.0.0.0 - 1.0.0.255
....
223.255.254.0 - 223.255.254.255
如何快速查找ip地址范围?
您可以使用内置套接字将点式ip地址转换为整数
http://code.activestate.com/recipes/66517-ip-address-conversion-functions-with-the-builtin-s/
然后做一个测试,看看你的ip地址是否介于两个整数之间:
a = dottedQuadToNum(ipfrom)
b = dottedQuadToNum(ipto)
mine = dottedQuadToNum(MyIP)
您可以测试mine
是否位于a
和b
之间。
如果IP已排序,则可以对IP执行二进制搜索。因此它将是O(logN(,其中N是列表中IP的数量。
Python iptools似乎是一个很好的工具:
它提供如下对象:
- IpRange:提供
in
和迭代的ip地址范围- IpRangeList:提供
in
和迭代的IpRange对象的列表