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 "未知";
    }
相关推荐
J2虾虾12 分钟前
SpringBoot和mybatis Plus不兼容报错的问题
java·spring boot·mybatis
毕设源码-郭学长1 小时前
【开题答辩全过程】以 基于springboot 的豪华婚车租赁系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
Loo国昌2 小时前
深入理解 FastAPI:Python高性能API框架的完整指南
开发语言·人工智能·后端·python·langchain·fastapi
Tao____3 小时前
通用性物联网平台
java·物联网·mqtt·低代码·开源
曹轲恒3 小时前
SpringBoot整合SpringMVC(上)
java·spring boot·spring
JH30734 小时前
Java Spring中@AllArgsConstructor注解引发的依赖注入异常解决
java·开发语言·spring
码农水水4 小时前
米哈游Java面试被问:机器学习模型的在线服务和A/B测试
java·开发语言·数据库·spring boot·后端·机器学习·word
2601_949575864 小时前
Flutter for OpenHarmony二手物品置换App实战 - 表单验证实现
android·java·flutter
血小板要健康5 小时前
如何计算时间复杂度(上)
java·数据结构·算法
计算机学姐5 小时前
基于SpringBoot的美食分享交流平台
java·spring boot·后端·spring·java-ee·intellij-idea·美食