ip2region通过ip获得地址
提供两种方式一种是ip2region.db,一种是ip2region.d=xdb,本地讲解db
简介
本工具类使用org.lionsoul:ip2region工具类作为基础,简化了操作,把方法改写成了静态类,添加了区域实体,以及支持SpringBoot自动配置。
依赖导入
最新版本
org.lionsoul:ip2region
最新版本
maven
<!-- 必须依赖 --> <dependency> <groupId>cn.404z</groupId> <artifactId>ip2region</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>org.lionsoul</groupId> <artifactId>ip2region</artifactId> <version>1.7.2</version> </dependency> <!-- 额外依赖(运行未报错,不需要加) --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.11</version> </dependency>
gradle
// 必须依赖 implementation 'cn.404z:ip2region:1.1.0' implementation 'org.lionsoul:ip2region:1.7.2' // 额外依赖(运行未报错,不需要加) implementation 'ch.qos.logback:logback-classic:1.2.11'
使用方法
通过url初始化
代码
Ip2Region.initByUrl("https://cdn.jsdelivr.net/gh/lionsoul2014/ip2region/data/ip2region.db"); System.out.print(Ip2Region.parse("202.108.22.5"));
结果
[main] INFO cn.z.ip2region.Ip2Region - 初始化,URL路径为https://cdn.jsdelivr.net/gh/lionsoul2014/ip2region/data/ip2region.db [main] INFO cn.z.ip2region.Ip2Region - 加载数据文件成功,总共8.93MB Region{country='中国', province='北京', city='北京', area='', isp='联通'}
通过文件初始化
代码
Ip2Region.initByFile("/file/ip2region/data.db"); System.out.print(Ip2Region.parse("202.108.22.5"));
结果
[main] INFO cn.z.ip2region.Ip2Region - 初始化,文件路径为/file/ip2region/data.db [main] INFO cn.z.ip2region.Ip2Region - 加载数据文件成功,总共8.93MB Region{country='中国', province='北京', city='北京', area='', isp='联通'}
通过bytes初始化
代码
try { Ip2Region.init(Files.readAllBytes((new File("/file/ip2region/data.db")).toPath())); } catch (IOException e) { e.printStackTrace(); } System.out.print(Ip2Region.parse("202.108.22.5"));
结果
[main] INFO cn.z.ip2region.Ip2Region - 加载数据文件成功,总共8.93MB Region{country='中国', province='北京', city='北京', area='', isp='联通'}
初始化多次
代码
Ip2Region.initByFile("/file/ip2region/data.db"); Ip2Region.initByFile("/file/ip2region/data.db"); System.out.print(Ip2Region.parse("202.108.22.5"));
结果
[main] INFO cn.z.ip2region.Ip2Region - 初始化,文件路径为/file/ip2region/data.db [main] INFO cn.z.ip2region.Ip2Region - 加载数据文件成功,总共8.93MB [main] WARN cn.z.ip2region.Ip2Region - 已经初始化过了,不可重复初始化! Region{country='中国', province='北京', city='北京', area='', isp='联通'}
初始化异常
代码
Ip2Region.initByFile("/file/ip2region/data"); System.out.print(Ip2Region.parse("202.108.22.5"));
结果
[main] INFO cn.z.ip2region.Ip2Region - 初始化,文件路径为/file/ip2region/data [main] ERROR cn.z.ip2region.Ip2Region - 文件读取异常 java.nio.file.NoSuchFileException: \file\ip2region\data [main] ERROR cn.z.ip2region.Ip2Region - memorySearch查询异常 java.lang.NullPointerException: null Region{country='', province='', city='', area='', isp=''}
gitee地址
https://gitee.com/chenjie950907/ip2region-test
新版本请查看https://www.cnblogs.com/cj8357475/p/16493953.html
本文来自博客园,作者:小陈子博客,转载请注明原文链接:https://www.cnblogs.com/cj8357475/p/16491635.html
分类:
springboot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本