mica-ip2region 使用文档

mica-ip2regionip2region 的封装,方便 spring boot 用户使用。

关于 ip2region

Gitee:https://gitee.com/lionsoul/ip2region

使用

maven

<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-ip2region</artifactId>
<version>${version}</version>
</dependency>

gradle

compile("net.dreamlu:mica-ip2region:${version}")

配置说明(已经内置,忽略)

配置项 默认值 说明
ip2region.db-file-location classpath:ip2region/ip2region.db ip2region.db 文件的地址,默认内置的文件

maven 自定义 ip2region.db 注意事项:

  • 一般我们都会同步更新 ip2region.db 文件,不需要手动配置。

  • maven resources 拷贝文件是默认会做 filter,会导致我们的文件发生变化,导致不能读,pom 中你需要添加下面的配置。

<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>db</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>

注入 bean

@Autowired
private Ip2regionSearcher regionSearcher;

方法说明

/**
* ip 位置 搜索
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo memorySearch(long ip);

/**
* ip 位置 搜索
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo memorySearch(String ip);

/**
* ip 位置 搜索
*
* @param ptr ptr
* @return 位置
*/
@Nullable
IpInfo getByIndexPtr(long ptr);

/**
* ip 位置 搜索
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo btreeSearch(long ip);

/**
* ip 位置 搜索
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo btreeSearch(String ip);

/**
* ip 位置 搜索
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo binarySearch(long ip);

/**
* ip 位置 搜索
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo binarySearch(String ip);


/**
* 直接获取地址信息,完整的地址,例如:北京朝阳区xxx
*
* @param ip ip
* @return 地址
*/
@Nullable
default String getAddress(long ip) {
return getInfo(ip, IpInfo::getAddress);
}

/**
* 直接获取地址信息,完整的地址,例如:北京朝阳区xxx
*
* @param ip ip
* @return 地址
*/
@Nullable
default String getAddress(String ip) {
return getInfo(ip, IpInfo::getAddress);
}

/**
* 获取地址信息包含 isp
*
* @param ip ip
* @return 地址
*/
@Nullable
default String getAddressAndIsp(long ip) {
return getInfo(ip, IpInfo::getAddressAndIsp);
}

/**
* 获取地址信息包含 isp
*
* @param ip ip
* @return 地址
*/
@Nullable
default String getAddressAndIsp(String ip) {
return getInfo(ip, IpInfo::getAddressAndIsp);
}

微信 vs 公众号

如梦技术

精彩内容每日推荐!!!