ip获取城市省份信息

最近突然用到 ip获取城市省份信息这些,不想使用api,长话短说,以下是实现方法

首先在maven中引入如下包。

java 复制代码
 <dependency>
            <groupId>org.lionsoul</groupId>
            <artifactId>ip2region</artifactId>
            <version>2.7.0</version>
        </dependency>

我这边使用工具类进行的去进行,让需要用到的地方进行直接使用,在代码中的xdb文件是ip地理位置信息的数据库文件,目前放在本地的

java 复制代码
@Slf4j
public class Ip2RegionUtil {

    public static String findByIp(String ip) {
        InputStream inputStream = null;
        try {
            inputStream = new ClassPathResource("/ipdb/ip2region.xdb").getInputStream();
        } catch (IOException ex) {
            throw new RuntimeException(ex);
        }
        byte[] dbBinStr = null;
        try {
            dbBinStr = FileCopyUtils.copyToByteArray(inputStream);

            Searcher searcher = Searcher.newWithBuffer(dbBinStr);
            return searcher.search(ip);
        } catch (Exception e) {
            log.error("ip转换异常【{}】,【{}】",ip,e);
            return "未知ip";
        }finally {
            try {
                inputStream.close();
            } catch (IOException e) {
                log.error("关闭ip2.xdb流异常【{}】",e.getMessage());
            }
        }
    }

以上即可实现ip获取城市的省份信息了。 切记如果是maven项目 pom 文件中记得将xdb文件放开不要一起打包

xdb 文件路径 ip2region/binding at master · lionsoul2014/ip2region · GitHub

或在联系我,我这儿也可以给

相关推荐
Leinwin13 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
薛定谔的悦13 小时前
MQTT通信协议业务层实现的完整开发流程
java·后端·mqtt·struts
enjoy嚣士14 小时前
springboot之Exel工具类
java·spring boot·后端·easyexcel·excel工具类
罗超驿14 小时前
独立实现双向链表_LinkedList
java·数据结构·链表·linkedlist
盐水冰15 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
凸头15 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言
wuqingshun31415915 小时前
线程安全需要保证几个基本特征
java·开发语言·jvm
努力也学不会java15 小时前
【缓存算法】一篇文章带你彻底搞懂面试高频题LRU/LFU
java·数据结构·人工智能·算法·缓存·面试
攒了一袋星辰15 小时前
高并发强一致性顺序号生成系统 -- SequenceGenerator
java·数据库·mysql
小涛不学习15 小时前
Spring Boot 详解(从入门到原理)
java·spring boot·后端