强大的IP地址定位库--ip2region 的初步使用
2019年05月05日 开源的IP 地址定位库 ip2region 1.9.0 发布了,功能还是很不错的,下面我就应用下ip2region,来解析ip的地址
一、下载ip库并解压
地址为:https://github.com/lionsoul2014/ip2region/archive/v1.9.0-release.tar.gz
解压
把ip2region.db粘贴到我们maven工程的resources下
二、添加ip2region依赖
<dependency><groupId>org.lionsoul</groupId><artifactId>ip2region</artifactId><version>1.7.2</version>
</dependency>
三、实现IPUtil工具类
import java.io.File;
import java.lang.reflect.Method;import org.lionsoul.ip2region.DataBlock;
import org.lionsoul.ip2region.DbConfig;
import org.lionsoul.ip2region.DbSearcher;
import org.lionsoul.ip2region.Util;public class IPUtil {public static String getCityInfo(String ip){//dbString dbPath = IPUtil.class.getResource("/ip2region.db").getPath();File file = new File(dbPath);if ( file.exists() == false ) {System.out.println("Error: Invalid ip2region.db file");}//查询算法int algorithm = DbSearcher.BTREE_ALGORITHM; //B-tree//DbSearcher.BINARY_ALGORITHM //Binary//DbSearcher.MEMORY_ALGORITYM //Memorytry {DbConfig config = new DbConfig();DbSearcher searcher = new DbSearcher(config, dbPath);//define the methodMethod method = null;switch ( algorithm ){case DbSearcher.BTREE_ALGORITHM:method = searcher.getClass().getMethod("btreeSearch", String.class);break;case DbSearcher.BINARY_ALGORITHM:method = searcher.getClass().getMethod("binarySearch", String.class);break;case DbSearcher.MEMORY_ALGORITYM:method = searcher.getClass().getMethod("memorySearch", String.class);break;}DataBlock dataBlock = null;if ( Util.isIpAddress(ip) == false ) {System.out.println("Error: Invalid ip address");}dataBlock = (DataBlock) method.invoke(searcher, ip);return dataBlock.getRegion();} catch (Exception e) {e.printStackTrace();}return null;
}}
四、测试
这里我是用的Junit进行单元测试,你也可以自己写个main方法测试即可
添加junit依赖
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version>
</dependency>
编写测试类
import org.junit.After;
import org.junit.Before;
import org.junit.Test;public class IPUtilTest {private IPUtil ipUtil;@Beforepublic void setUp(){ipUtil=new IPUtil();}@Afterpublic void tearDown(){ipUtil=null;}@Testpublic void getCityInfo(){String ip = "220.248.12.158";System.out.println(ipUtil.getCityInfo(ip));}
}
总结:很方便,其实我觉得比纯真的要好多了~
转载于:https://blog.51cto.com/14309075/2390060
强大的IP地址定位库--ip2region 的初步使用相关推荐
- 使用强大的离线IP地址定位库ip2region获取城市信息
文章目录 一.简介 二.ip2region的使用 1.引入依赖 2.下载ip2region.db 3.IpUtils工具类 一.简介 ip2region - 准确率99.9%的离线IP地址定位库 ...
- Ip2region 离线IP地址定位库
Ip2region 是什么 ip2region v2.0 - 是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的 xdb 数据生成和查询客户端实现. Gi ...
- Ip2region 离线IP地址定位库和IP定位数据管理框架
老板要我做一个 IP 属地功能!我摸索了 1 天,搞定了.♥️ 细心的朋友应该会发现,最近,继新浪微博之后,头条.腾讯.抖音.知乎.快手.小红书等各大平台陆陆续续都上线了"网络用户IP地址显 ...
- 开源:推荐一个不错的离线IP地址定位库
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://gitee.com/lions ...
- 准确率99.9%的离线IP地址定位库
准确率99.9%的离线IP地址定位库. Ip2region 是一个离线 IP 地址定位库,准确率高达 99.9%,搜索性能为 0.0x 毫秒.DB 文件只有几兆字节,其中存储了所有 IP 地址.支持 ...
- 一个还不错的离线 IP 地址定位库,99.9% 准确率!
点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 ...
- 准确率 99.9% 的离线IP地址定位库
点击关注公众号,利用碎片时间学习 Ip2region 是一个离线 IP 地址定位库,准确率高达 99.9%,搜索性能为 0.0x 毫秒.DB 文件只有几兆字节,其中存储了所有 IP 地址. 支持 Ja ...
- 毫秒级查询的离线IP地址定位库,太实用了!
大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标! 咱们程序员开发任何系统, ...
- 埃文科技推出免费区县级别IP地址定位库 提升IP地址定位行业标准
IP地址定位市场已发展多年.国际上的老牌IP地址定位公司,如 MaxMind.IP2Location 与 Digital Element 等为代表的国外传统 IP地址定位公司,在国际市场占据主要 ...
最新文章
- d类功放芯片_【学术论文】应用于无滤波级D类音频功放的新型死区时间控制系统...
- GDCM:gdcm::VR的测试程序
- MySQL高级 - 锁 - MyISAM表锁 - 写锁
- 运行的Cython的3种方法
- 休息使用Jersey –包含JAXB,异常处理和客户端程序的完整教程
- Spring_day4
- 升级php5.5.10扩展不兼容
- 同花顺公式转python_【转】 同花顺系统公式编写教程及函数用法基础(一)
- 惠斯通电桥电路 轴扭矩 计算
- 云队友丨知乎10万赞回答:真正厉害的人,是怎么分析问题的?
- Boxy Vehicle Detection in Large Images
- java自学笔记(4)-Stanford CS106A 弹球动画 20.9.9
- 强烈推荐几款IDEA插件,12款小白神器
- 背包型动态规划——零钱兑换
- 基于搜狗接口的微信公众号及其信息爬取
- H.265/HEVC解码器 C 参考代码
- JAVA数组中五种常见排序方法
- 争对让望对思野葛对山栀注解_《笠翁对韵》上卷四支详解
- 「Python循环结构」使用while循环实现基金投资
- 佳能MG3600系列打印机如何更换连接WiFi
热门文章
- 组合索引(MySQL查询优化器)
- vostro3070装win7_戴尔Vostro 成就3070台式机怎么装win10系统?
- [十二省联考2019]春节十二响——长链剖分+堆
- 行车电脑ScanMaster-ELM2.1汉化完美PC版
- 无线网路不可用(hp4410s)
- 敏捷方法中极限编程(XP)和Scrum区别
- 阿里云国际使用高速通道在 VPC 之间建立内网连接
- 【Verilog基础】【总线协议】AHB BURST传输可以提前终止吗?
- 如何在PC浏览器上看wap网站源码?
- 用vue3+vant4开发的简单小众电商购物项目模板(纯前端)