# ip2region-spring-boot-autoconfigure
**Repository Path**: ALI1416/ip2region-spring-boot-autoconfigure
## Basic Information
- **Project Name**: ip2region-spring-boot-autoconfigure
- **Description**: IP Address To Region Springboot Autoconfigure IP地址转区域自动配置
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2021-09-23
- **Last Updated**: 2025-12-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# IP Address To Region Springboot Autoconfigure IP地址转区域SpringBoot自动配置
[](https://www.apache.org/licenses/LICENSE-2.0.txt)
[](https://openjdk.org/)
[](https://mvnrepository.com/artifact/cn.404z/ip2region-spring-boot-autoconfigure)
[](https://github.com/ALI1416/ip2region-spring-boot-autoconfigure/tags)
[](https://github.com/ALI1416/ip2region-spring-boot-autoconfigure/archive/refs/heads/master.zdb)
[](https://github.com/ALI1416/ip2region-spring-boot-autoconfigure/actions/workflows/ci.yml)
[


](https://sonarcloud.io/summary/new_code?id=ALI1416_ip2region-spring-boot-autoconfigure)
## 简介
本项目是[IP地址转区域](https://github.com/ALI1416/ip2region)的SpringBoot自动配置
## 数据文件
- 数据文件目录:[点击查看](https://github.com/ALI1416/ip2region/tree/master/data)
## 依赖导入
```xml
cn.404z
ip2region-spring-boot-autoconfigure
3.4.0
org.springframework.boot
spring-boot-starter
2.7.18
```
## 使用方法
### 定义常量
```java
final String zdbPath = "E:/ip2region.zdb";
final String ip = "123.132.0.0";
```
### 使用资源路径
```java
// 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
```
### 使用本地路径
```java
// 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路径
```java
// 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='联通'}
```
### 优先级
```java
// 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='联通'}
```
### 没有配置
```java
// # 不需要配置
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: 未初始化!
```
### 配置错误
```java
// 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
```
### 配置属性后又手动初始化
```java
// 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='联通'}
```
更多请见[测试](./src/test)
## 更新日志
[点击查看](./CHANGELOG.md)
## 关于