/ip2region-spring-boot-autoconfigure

IP Address To Region Springboot Autoconfigure IP地址转区域自动配置

Primary LanguageJavaApache License 2.0Apache-2.0

IP Address To Region Springboot Autoconfigure IP地址转区域SpringBoot自动配置

License Java Support Maven Central Tag Repo Size

Java CI Coverage Reliability Rating Maintainability Rating Security Rating

简介

本项目是IP地址转区域的SpringBoot自动配置

数据文件

依赖导入

<dependency>
  <groupId>cn.404z</groupId>
  <artifactId>ip2region-spring-boot-autoconfigure</artifactId>
  <version>3.2.1</version>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter</artifactId>
  <version>2.7.15</version>
</dependency>

使用方法

定义常量

final String zdbPath = "E:/ip2region.zdb";
final String ip = "123.132.0.0";

使用资源路径

// ip2region:
//   resource-path: /file/ip2region/ip2region.zdb
log.info(String.valueOf(Ip2Region.parse(ip)));
log.info("是否已经初始化:{}", Ip2Region.initialized());
// INFO cn.z.ip2region.Ip2Region                 : 数据加载成功:版本号VERSION 20221207 ,校验码CRC32 68EDD841
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : Started Ip2RegionAutoConfigurationTest in 0.955 seconds (JVM running for 1.859)
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : Region{country='**', province='山东省', city='济宁市', isp='联通'}
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : 是否已经初始化:true

使用本地路径

// ip2region:
//   local-path: E:/ip2region.zdb
log.info(String.valueOf(Ip2Region.parse(ip)));
// INFO c.z.i.a.Ip2RegionAutoConfiguration       : IP地址转区域配置:本地路径LOCAL_PATH E:/ip2region.zdb
// INFO cn.z.ip2region.Ip2Region                 : IP地址转区域初始化:文件路径LOCAL_PATH E:/ip2region.zdb
// INFO cn.z.ip2region.Ip2Region                 : 数据加载成功:版本号VERSION 20221207 ,校验码CRC32 68EDD841
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : Started Ip2RegionAutoConfigurationTest in 0.955 seconds (JVM running for 1.859)
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : Region{country='**', province='山东省', city='济宁市', isp='联通'}

使用url路径

// ip2region:
//   url-path: https://www.404z.cn/files/ip2region/v3.0.0/data/ip2region.zdb
log.info(String.valueOf(Ip2Region.parse(ip)));
// INFO c.z.i.a.Ip2RegionAutoConfiguration       : IP地址转区域配置:URL路径URL_PATH https://www.404z.cn/files/ip2region/v3.0.0/data/ip2region.zdb
// INFO cn.z.ip2region.Ip2Region                 : IP地址转区域初始化:URL路径URL_PATH https://www.404z.cn/files/ip2region/v3.0.0/data/ip2region.zdb
// INFO cn.z.ip2region.Ip2Region                 : 数据加载成功:版本号VERSION 20221207 ,校验码CRC32 68EDD841
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : Started Ip2RegionAutoConfigurationTest in 0.955 seconds (JVM running for 1.859)
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : Region{country='**', province='山东省', city='济宁市', isp='联通'}

优先级

// ip2region:
//   resource-path: /file/ip2region/ip2region.zdb
//   local-path: E:/ip2region.zdb
//   url-path: https://www.404z.cn/files/ip2region/v3.0.0/data/ip2region.zdb
log.info(String.valueOf(Ip2Region.parse(ip)));
// INFO cn.z.ip2region.Ip2Region                 : 数据加载成功:版本号VERSION 20221207 ,校验码CRC32 68EDD841
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : Started Ip2RegionAutoConfigurationTest in 0.955 seconds (JVM running for 1.859)
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : Region{country='**', province='山东省', city='济宁市', isp='联通'}

没有配置

// # 不需要配置
log.info(String.valueOf(Ip2Region.parse(ip)));
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : Started Ip2RegionAutoConfigurationTest in 0.955 seconds (JVM running for 1.859)
// cn.z.ip2region.Ip2RegionException: 未初始化!

配置错误

// ip2region:
//   resource-path: /file/ip2region/ip2region
log.info(String.valueOf(Ip2Region.parse(ip)));
//  INFO c.z.i.a.Ip2RegionAutoConfiguration       : IP地址转区域配置:资源路径RESOURCE_PATH /file/ip2region/ip2region
// ERROR c.z.i.a.Ip2RegionAutoConfiguration       : 资源文件异常!
// java.io.FileNotFoundException: class path resource [file/ip2region/ip2region] cannot be opened because it does not exist

配置属性后又手动初始化

// ip2region:
//   resource-path: /file/ip2region/ip2region.zdb
Ip2Region.initByFile(zdbPath);
log.info(String.valueOf(Ip2Region.parse(ip)));
// INFO cn.z.ip2region.Ip2Region                 : 数据加载成功:版本号VERSION 20221207 ,校验码CRC32 68EDD841
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : Started Ip2RegionAutoConfigurationTest in 0.955 seconds (JVM running for 1.859)
// WARN cn.z.ip2region.Ip2Region                 : 已经初始化过了,不可重复初始化!
// INFO c.z.i.a.Ip2RegionAutoConfigurationTest   : Region{country='**', province='山东省', city='济宁市', isp='联通'}

更多请见测试

更新日志

点击查看

关于

About