2013年2月18日星期一

笔记:整合IP地址库数据

整合IP地址库数据:
1)A 文件:ip_c, state(国家), prov(省份), isp(运营商)
2)B 文件:ip_start_inet、ip_end_inet、state, prov, area(地区)


提取出A文件中的ip_c,去B文件里查area,得到文件C:

ip_c, start_inet , end_inet, b_state, b_prov, b_area

这里注意分批查节省内存,比如每次查5000个c段之类的


合并文件A和文件C,得到文件D(按start_inet递增写入):

ip_c, start_inet , end_inet, state, prov, area, isp

最终的state/prov/area是文件A与文件C里的地址信息PK结果,指定一些附加检查条件即可


遍历文件D,检查相邻两行是否具有完全相同的state, prov, area, isp信息,并且前一行的end_inet + 1 是否等于后一行的 start_inet
  • 如果是,则更新start_inet、end_inet,合并成一行,从新行开始继续遍历
  • 如果不是,则从后一行开始,继续遍历
最后得到文件E:
start_inet , end_inet, state, prov, area, isp

没有评论:

发表评论