# ip2region
**Repository Path**: yalpuz/ip2region
## Basic Information
- **Project Name**: ip2region
- **Description**: IP Address To Region IP地址转区域
- **Primary Language**: Java
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2022-07-25
- **Last Updated**: 2022-07-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# IP Address To Region IP地址转区域
## 项目地址
[Github源码](https://github.com/ALI1416/ip2region)
[Gitee源码](https://gitee.com/ALI1416/ip2region)
[](https://app.travis-ci.com/ALI1416/ip2region)
[Github测试](https://github.com/ALI1416/ip2region-test)
[Gitee测试](https://gitee.com/ALI1416/ip2region-test)
[](https://app.travis-ci.com/ALI1416/ip2region-test)
### SpringBoot自动配置项目地址
[Github源码](https://github.com/ALI1416/ip2region-spring-boot-autoconfigure)
[Gitee源码](https://gitee.com/ALI1416/ip2region-spring-boot-autoconfigure)
[](https://app.travis-ci.com/ALI1416/ip2region-spring-boot-autoconfigure)
[Github测试](https://github.com/ALI1416/ip2region-spring-boot-autoconfigure-test)
[Gitee测试](https://gitee.com/ALI1416/ip2region-spring-boot-autoconfigure-test)
[](https://app.travis-ci.com/ALI1416/ip2region-spring-boot-autoconfigure-test)
## 简介
本工具类使用org.lionsoul:ip2region工具类作为基础,简化了操作,把方法改写成了静态类,添加了区域实体,以及支持SpringBoot自动配置。
## 依赖导入
最新版本
[](https://maven-badges.herokuapp.com/maven-central/cn.404z/ip2region)
`org.lionsoul:ip2region`最新版本
[](https://maven-badges.herokuapp.com/maven-central/org.lionsoul/ip2region)
maven
```xml
cn.404z
ip2region
1.1.0
org.lionsoul
ip2region
1.7.2
ch.qos.logback
logback-classic
1.2.11
```
gradle
```groovy
// 必须依赖
implementation 'cn.404z:ip2region:1.1.0'
implementation 'org.lionsoul:ip2region:1.7.2'
// 额外依赖(运行未报错,不需要加)
implementation 'ch.qos.logback:logback-classic:1.2.11'
```
## 使用方法
### 通过url初始化
代码
```java
Ip2Region.initByUrl("https://cdn.jsdelivr.net/gh/lionsoul2014/ip2region/data/ip2region.db");
System.out.print(Ip2Region.parse("202.108.22.5"));
```
结果
```txt
[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='联通'}
```
### 通过文件初始化
代码
```java
Ip2Region.initByFile("/file/ip2region/data.db");
System.out.print(Ip2Region.parse("202.108.22.5"));
```
结果
```txt
[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初始化
代码
```java
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"));
```
结果
```txt
[main] INFO cn.z.ip2region.Ip2Region - 加载数据文件成功,总共8.93MB
Region{country='中国', province='北京', city='北京', area='', isp='联通'}
```
### 初始化多次
代码
```java
Ip2Region.initByFile("/file/ip2region/data.db");
Ip2Region.initByFile("/file/ip2region/data.db");
System.out.print(Ip2Region.parse("202.108.22.5"));
```
结果
```txt
[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='联通'}
```
### 初始化异常
代码
```java
Ip2Region.initByFile("/file/ip2region/data");
System.out.print(Ip2Region.parse("202.108.22.5"));
```
结果
```txt
[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=''}
```
## 许可证
[](https://opensource.org/licenses/BSD-3-Clause)
## 交流
QQ:1416978277
微信:1416978277
支付宝:1416978277@qq.com

## 赞助
