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 "未知";
    }
相关推荐
开开心心就好几秒前
免费无广告的礼金记账本,安卓应用
java·前端·ubuntu·edge·pdf·负载均衡·语音识别
无籽西瓜a10 分钟前
OSI 七层模型详解及面经
java·网络·后端
marsh020612 分钟前
14 openclaw模板引擎使用:高效渲染动态内容
java·前端·spring·ai·编程·技术
qq_3585896115 分钟前
sylar 配置系统
java·c++·算法
佩奇大王18 分钟前
P103 日期问题
java·开发语言·算法
颜酱26 分钟前
吃透回溯算法:从框架到实战
javascript·后端·算法
逸Y 仙X29 分钟前
文章八:ElasticSearch特殊数据字段类型解读
java·大数据·linux·运维·elasticsearch·搜索引擎
青木川崎32 分钟前
设计模式之面试题
java·开发语言·设计模式
空空潍33 分钟前
Java核心基础语法:从原理到实战,夯实Java开发基石
java·开发语言
jing-ya33 分钟前
day 57 图论part9
java·开发语言·数据结构·算法·图论