今天给大家推荐一款离线的IP归属地查询工具,github项目名称为 ip2regin,项目地址为:
https://github.com/lionsoul2014/ip2region
ip2regin 自带一套离线数据,如果有数据源的话,可以自己生成数据文件。ip2regin实际上是一套离线IP地址定位库和IP定位数据管理框架,查询效果非常高,能做到高达10微秒级别的查询效率。
ip2regin 支持多种语言接口,我们以python为例。Python版本的类库在 ip2region/binding/python 目录。我们通过交互式讲解怎么使用,首先我们需要进到这个python库文件目录,然后 import xdbSearcher 库文件。
$ cd ip2region/binding/python$ python>>> from xdbSearcher import XdbSearcher>>> dbPath = "../../data/ip2region.xdb">>> buff = XdbSearcher.loadContentFromFile(dbfile=dbPath)>>> searcher = XdbSearcher(contentBuff=buff)>>> ip = searcher.search>>> ip('114.114.114.114')'中国|0|江苏省|南京市|0'>>> ip('8.8.8.8')'美国|0|0|0|Level3'
ip2regin 只定义了数据文件的格式,提供了查询接口。Python 版的查询接口定义在 xdbSearcher.py 文件中,import 之后就可以使用了。查询结果为五个字段组成的字符串,当数据为空时字段值为0,以'|'分隔,它们分别表示:国家|区域|省份|城市|ISP
国内数据可以精确到省市,国外数据只到国家。当然这里是以 git 库自带的数据文件为例。因为 ip2regin 只是定义了框架,并不保证IP数据能及时更新,如果自己有数据可以使用它自带的 maker 生成新的 xdb 数据文件。
对查询接口稍微包装一下就可以做成查 IP 归属地的本地工具,如果需要大批量处理IP数据,可以使用它的cache模式加载数据文件到内存中,这样查询效率更高,而不是查询一个IP就读一次文件。
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。
文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




