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 的初步使用相关推荐

  1. 使用强大的离线IP地址定位库ip2region获取城市信息

    文章目录 一.简介 二.ip2region的使用 1.引入依赖 2.下载ip2region.db 3.IpUtils工具类 一.简介    ip2region - 准确率99.9%的离线IP地址定位库 ...

  2. Ip2region 离线IP地址定位库

    Ip2region 是什么 ip2region v2.0 - 是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的 xdb 数据生成和查询客户端实现. Gi ...

  3. Ip2region 离线IP地址定位库和IP定位数据管理框架

    老板要我做一个 IP 属地功能!我摸索了 1 天,搞定了.♥️ 细心的朋友应该会发现,最近,继新浪微博之后,头条.腾讯.抖音.知乎.快手.小红书等各大平台陆陆续续都上线了"网络用户IP地址显 ...

  4. 开源:推荐一个不错的离线IP地址定位库

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://gitee.com/lions ...

  5. 准确率99.9%的离线IP地址定位库

    准确率99.9%的离线IP地址定位库. Ip2region 是一个离线 IP 地址定位库,准确率高达 99.9%,搜索性能为 0.0x 毫秒.DB 文件只有几兆字节,其中存储了所有 IP 地址.支持 ...

  6. 一个还不错的离线 IP 地址定位库,99.9% 准确率!

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 ...

  7. 准确率 99.9% 的离线IP地址定位库

    点击关注公众号,利用碎片时间学习 Ip2region 是一个离线 IP 地址定位库,准确率高达 99.9%,搜索性能为 0.0x 毫秒.DB 文件只有几兆字节,其中存储了所有 IP 地址. 支持 Ja ...

  8. 毫秒级查询的离线IP地址定位库,太实用了!

      大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!   咱们程序员开发任何系统, ...

  9. 埃文科技推出免费区县级别IP地址定位库 提升IP地址定位行业标准

     IP地址定位市场已发展多年.国际上的老牌IP地址定位公司,如 MaxMind.IP2Location 与 Digital Element 等为代表的国外传统 IP地址定位公司,在国际市场占据主要 ...

最新文章

  1. d类功放芯片_【学术论文】应用于无滤波级D类音频功放的新型死区时间控制系统...
  2. GDCM:gdcm::VR的测试程序
  3. MySQL高级 - 锁 - MyISAM表锁 - 写锁
  4. 运行的Cython的3种方法
  5. 休息使用Jersey –包含JAXB,异常处理和客户端程序的完整教程
  6. Spring_day4
  7. 升级php5.5.10扩展不兼容
  8. 同花顺公式转python_【转】 同花顺系统公式编写教程及函数用法基础(一)
  9. 惠斯通电桥电路 轴扭矩 计算
  10. 云队友丨知乎10万赞回答:真正厉害的人,是怎么分析问题的?
  11. Boxy Vehicle Detection in Large Images
  12. java自学笔记(4)-Stanford CS106A 弹球动画 20.9.9
  13. 强烈推荐几款IDEA插件,12款小白神器
  14. 背包型动态规划——零钱兑换
  15. 基于搜狗接口的微信公众号及其信息爬取
  16. H.265/HEVC解码器 C 参考代码
  17. JAVA数组中五种常见排序方法
  18. 争对让望对思野葛对山栀注解_《笠翁对韵》上卷四支详解
  19. 「Python循环结构」使用while循环实现基金投资
  20. 佳能MG3600系列打印机如何更换连接WiFi

热门文章

  1. 组合索引(MySQL查询优化器)
  2. vostro3070装win7_戴尔Vostro 成就3070台式机怎么装win10系统?
  3. [十二省联考2019]春节十二响——长链剖分+堆
  4. 行车电脑ScanMaster-ELM2.1汉化完美PC版
  5. 无线网路不可用(hp4410s)
  6. 敏捷方法中极限编程(XP)和Scrum区别
  7. 阿里云国际使用高速通道在 VPC 之间建立内网连接
  8. 【Verilog基础】【总线协议】AHB BURST传输可以提前终止吗?
  9. 如何在PC浏览器上看wap网站源码?
  10. 用vue3+vant4开发的简单小众电商购物项目模板(纯前端)