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 "未知";
    }
相关推荐
毕设源码-朱学姐2 分钟前
【开题答辩全过程】以 剧本杀服务管理系统的设计与实现为例,包含答辩的问题和答案
java
乐观勇敢坚强的老彭11 分钟前
c++信奥寒假营集训01
android·java·c++
☀Mark_LY11 分钟前
MyBatis-Flex入门以及多数据源配置
java·mybatis
郑州光合科技余经理18 分钟前
同城配送调度系统实战:JAVA微服务
java·开发语言·前端·后端·微服务·中间件·php
Dontla21 分钟前
GraphQL介绍(声明式查询)文件上传GraphQL文件上传
后端·graphql
独自破碎E30 分钟前
【模拟】顺时针旋转矩阵
java·线性代数·矩阵
还在忙碌的吴小二32 分钟前
Go-View 数据可视化大屏使用手册
开发语言·后端·信息可视化·golang
哪里不会点哪里.39 分钟前
什么是 Spring Cloud?
后端·spring·spring cloud
TsengOnce41 分钟前
Docker 安装达梦8数据库-5步成功
java·数据库
树码小子1 小时前
Spring框架:Spring程序快速上手
java·后端·spring