您现在的位置是:首页 > 手游情报

解析IP知多少?推荐一款超好用的开源IP解析工具IP2Region

掌游情报站 2024-11-17【手游情报】214人已围观

简介一、简介IP2Region是一个离线IP地址定位库,可以离线完成IP地址解析,而且准确率极高(官网给出国内IP准确率可达99.9%),自身数据库文件也不大,只有几M而已,提供支持多种客户端使用,包括java,php,c,python,nodejs,golang,c、php、c、python、node...

一、简介

IP2Region是一个离线IP地址定位库,可以离线完成IP地址解析,而且准确率极高(官网给出国内IP准确率可达99.9%),自身数据库文件也不大,只有几M而已,提供支持多种客户端使用,包括java,php,c,python,nodejs,golang,c、php、c、python、nodejs、php扩展(php5和php7)、golang、rust、lua、lua_c,nginx。

三、应用

IP2Region应用部分本次主要以Java客户端的使用来进行说明。

1、安装引用相关包

IP2Region相关包的Maven仓库引用如下:

/groupIdartifactIdip2region//version/depency

只需要在文件中添加即可!

2、文件添加

将文件作为资源文件添加到项目中,如下图所示:

文件添加示例

注:文件的获取可从官网源码中下载,当然从1.8版本开始,ip2region开源了生成程序的java实现。所以你也可以使用以下命令在本地生成文件。

java-jardbMaker-{version}.jar-src文本数据文件-region地域csv文件[-dst生成的文件的目录]

3、代码实现及应用

下面给出使用解析IP地址的完整工具类定义代码:

publicclassAddressUtil{publicstaticStringgetCityInfo(intalgorithm,Stringip){try{StringdbPath=("/region/").getPath();Filefile=newFile(dbPath);if(!()){StringtmpDir=().getProperty("");dbPath=tmpDir+"";file=newFile(dbPath);((().getResourceAsStream("classpath:region/")),file);}DbConfigconfig=newDbConfig();DbSearchersearcher=newDbSearcher(config,());Methodmethod;switch(algorithm){_ALGORITHM:method=().getMethod("btreeSearch",);break;_ALGORITHM:method=().getMethod("binarySearch",);break;_ALGORITYM:method=().getMethod("memorySearch",);break;default:method=().getMethod("memorySearch",);break;}if(!(ip)){("错误的IP地址");}DataBlockdataBlock=(DataBlock)(searcher,ip);();}catch(Exceptione){("获取地址信息异常:{}",());}return"";}}

工具类AddressUtil方法getCityInfo给定一个IP,最终返回对应解析地址字符。

IP解析测试结果示例

总结

以上只是简单地以Java客户端作为应用举例,其他客户端及功能可去官网下载源码研究学习,当然如果同学们有更好的类似工具也欢迎分享交流。

项目地址:

很赞哦!(104)