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 "未知";
    }
相关推荐
摸鱼的春哥4 小时前
春哥的Agent通关秘籍13:实现RAG查询
前端·javascript·后端
Victor3564 小时前
MongoDB(16)如何在MongoDB中创建数据库?
后端
勇哥java实战分享13 小时前
程序员的明天:AI 时代下的行业观察与个人思考
后端
掘金码甲哥15 小时前
超性感的轻量级openclaw平替,我来给你打call
后端
用户83562907805118 小时前
无需 Office:Python 批量转换 PPT 为图片
后端·python
啊哈灵机一动18 小时前
使用golang搭建一个nes 模拟器
后端
日月云棠19 小时前
各版本JDK对比:JDK 25 特性详解
java
间彧19 小时前
SpringBoot + ShardingSphere 读写分离实战指南
后端
砍材农夫19 小时前
订单超时
后端
树獭叔叔20 小时前
06-大模型如何"学习":从梯度下降到AdamW优化器
后端·aigc·openai