ip2region可本地查询IP地址所属的区域
1、首先引入ip2region包
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-ip2region</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>ip2region</artifactId>
<version>2.7.0</version>
</dependency>
2、将地址数据库(xdb文件)放入resources目录下
3、工具类
import com.hxmec.core.utils.WebUtils;
import lombok.extern.slf4j.Slf4j;
import org.lionsoul.ip2region.xdb.Searcher;
import org.springframework.util.FileCopyUtils;
import java.io.IOException;
import java.io.InputStream;
@Slf4j
public class IpAddrUtil {
private static Searcher searcher;
static {
try {
InputStream ris = WebUtils.class.getResourceAsStream("/ip2region.xdb");
byte[] dbBinStr = FileCopyUtils.copyToByteArray(ris);
searcher = Searcher.newWithBuffer(dbBinStr);
} catch (IOException e) {
log.error("解析ip地址失败,无法创建搜索器: {}", e.getMessage(), e);
throw new RuntimeException(e);
}
}
public static String getIpRegion(String ip) {
if (searcher == null) {
return null;
}
try {
return searcher.search(ip);
} catch (Exception e) {
log.error("IP 格式错误:{}", e.getMessage());
return null;
}
}
}
附:ip2region.xdb百度网盘链接
链接: https://pan.baidu.com/s/1xiHSVIvpHSuB1uqL4-LPUg
提取码: 4399