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 "未知";
    }
相关推荐
UIUV2 分钟前
AI Agent 开发实战:从原理到最小化实现
后端·langchain·node.js
躲在云朵里`5 分钟前
Jeecgboot框架-权限控制
java·开发语言
canonical_entropy5 分钟前
反直觉的软件设计洞察:为什么你可能想不到它们
后端·aigc·领域驱动设计
Ai runner6 分钟前
Show call stack in perfetto from json input
java·前端·json
树獭叔叔7 分钟前
01-注意力机制详解:大模型如何决定"该关注什么"?
后端·aigc·openai
I_LPL10 分钟前
day36 代码随想录算法训练营 动态规划专题4
java·算法·leetcode·动态规划·hot100
Mr YiRan10 分钟前
C++二义性,多态,纯虚函数和模版函数
java·jvm·c++
升讯威在线客服系统22 分钟前
从 GC 抖动到稳定低延迟:在升讯威客服系统中实践 Span 与 Memory 的高性能优化
java·javascript·python·算法·性能优化·php·swift