Java实现手机号码归属地查询

前言

接到一个需求,获取手机号码的归属地。这里记录一下,我们可以使用com.googlecode.libphonenumber的geocoder来获取手机号码归属地

1、添加依赖

java 复制代码
  		<!--根据手机号查询归属地 -->
        <dependency>
            <groupId>com.googlecode.libphonenumber</groupId>
            <artifactId>geocoder</artifactId>
            <version>2.205</version>
        </dependency>

2、查询归属地方法

java 复制代码
    public static final PhoneNumberOfflineGeocoder GEOCODER = PhoneNumberOfflineGeocoder.getInstance();

    public static final int COUNTRY_CODE = 86;

    /**
     * 查询手机号码归属地
     * @param phoneNum
     * @return
     */
    public static String getPhoneNumAttribution(String phoneNum) {
        if (StringUtils.isNotBlank(phoneNum) && phoneNum.length() == 11) {
            try {
                long phone = Long.parseLong(phoneNum);
                Phonenumber.PhoneNumber pn = new Phonenumber.PhoneNumber();
                pn.setCountryCode(COUNTRY_CODE);
                pn.setNationalNumber(phone);
                return GEOCODER.getDescriptionForNumber(pn, Locale.CHINESE);
            }catch (Exception e){
                log.error("查询手机号码归属地失败,手机号:{},异常:{}",phoneNum,e);
                return "未知";
            }

        }
        log.info("查询手机号码归属地失败,手机号:{},异常:{}",phoneNum);
        return "未知";
    }
相关推荐
数字人直播5 分钟前
稳了!青否数字人分享3大精细化AI直播搭建方案!
前端·后端
肉夹馍不加青椒14 分钟前
第三十三天(信号量)
java·c语言·算法
现在,此刻15 分钟前
面试题储备-MQ篇 2-说说你对RocketMQ的理解
java·rocketmq·java-rocketmq
掘金一周17 分钟前
被老板逼出来的“表格生成器”:一个前端的自救之路| 掘金一周 8.21
前端·人工智能·后端
诗句藏于尽头32 分钟前
更改jar素材后打包
java·jar
SimonKing37 分钟前
开源新锐:SQL玩转搜索引擎?Manticore颠覆你的认知
java·后端·程序员
中国lanwp1 小时前
Jenkins Pipeline中参数化构建
java·jenkins
MaxHua2 小时前
数据库入门指南与实战进阶-Mysql篇
后端
记录Java学习的三木2 小时前
Java:将视频上传到腾讯云并通过腾讯云点播播放
java
用户4099322502122 小时前
FastAPI的死信队列处理机制:为何你的消息系统需要它?
后端·ai编程·trae