准备ip定位数据
准备全球ip地址合集,大约12M,采用-cacheFile分发
ip.lib.txt数据格式大致如下:
0.0.0.0 0.255.255.255 NULL IANA保留地址 NULL
1.0.0.0 1.0.0.255 亚洲 亚太地区 NULL
1.0.1.0 1.0.1.255 亚洲 中国 福建
1.0.2.0 1.0.3.255 亚洲 中国 福建
1.0.4.0 1.0.7.255 大洋洲 澳大利亚 NULL
1.0.8.0 1.0.15.255 亚洲 中国 广东
1.0.16.0 1.0.31.255 亚洲 日本 NULL
1.0.32.0 1.0.63.255 亚洲 中国 广东
输入数据cookie_ip.txt:
ECEE8FBBBB 113.224.76.226
ED38780B1D 106.36.217.145
120BB4FB44 113.109.42.83
9D4EC87B4B 219.153.212.31
AF0E43C785 111.77.229.40
4AAAEB560B 60.13.190.132
53BAABADD8 124.167.254.130
map.py
第一步用lambda将ip地址转换成数字,enumerate把一个字符串按“.”分隔,返回拆分后的索引+拆分后的值得集合,[::1]是把集合倒序,然后遍历倒序后的集合,256**j*int(i),求256的j次方乘i,然后把求出来的值累加。
#!/usr/local/bin/python
# coding = utf-8
import sys
ip_convert = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split(".")[::-1])])
def load_ip_lib_func(ip_lib_fd):
ip_lib_list = []
file_ip = open(ip_lib_fd,"r")
for line in file_ip:
ss = line