手机号归属地 libphonenumber
libphonenumber是一个Google开发的Common Java类库用于解析,格式化,存储和校验国际电话号码。适合用于智能手机上,同时还提供一个JavaScript移植。
举一个例子
package com.lei.util;import java.util.Locale;import com.google.i18n.phonenumbers.PhoneNumberToCarrierMapper;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
import com.okcoin.util.StringUtil;
/**代码示例StringUtil 为String工具类,并未提供,可执行更换。可以使用String 原生函数替换
*/
public class PhoneUtil {private static PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();private static PhoneNumberToCarrierMapper carrierMapper = PhoneNumberToCarrierMapper.getInstance();private static PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();/*** 根据国家代码和手机号 判断手机号是否有效* @param phoneNumber* @param countryCode* @return*/public static boolean checkPhoneNumber(String phoneNumber, String countryCode){int ccode = StringUtil.toInteger(countryCode);long phone = StringUtil.toLong(phoneNumber, 0L);PhoneNumber pn = new PhoneNumber();pn.setCountryCode(ccode);pn.setNationalNumber(phone);return phoneNumberUtil.isValidNumber(pn);}/*** 根据国家代码和手机号 判断手机运营商* @param phoneNumber* @param countryCode* @return*/public static String getCarrier(String phoneNumber, String countryCode){int ccode = StringUtil.toInteger(countryCode);long phone = StringUtil.toLong(phoneNumber, 0L);PhoneNumber pn = new PhoneNumber();pn.setCountryCode(ccode);pn.setNationalNumber(phone);//返回结果只有英文,自己转成成中文String carrierEn = carrierMapper.getNameForNumber(pn, Locale.ENGLISH);String carrierZh = "";carrierZh += geocoder.getDescriptionForNumber(pn, Locale.CHINESE);switch (carrierEn) {case "China Mobile":carrierZh += "移动";break;case "China Unicom":carrierZh += "联通";break;case "China Telecom":carrierZh += "电信";break;default:break;}return carrierZh;}/*** * @Description: 根据国家代码和手机号 手机归属地* @date 2015-7-13 上午11:33:18* @param @param phoneNumber* @param @param countryCode* @param @return 参数* @throws*/public static String getGeo(String phoneNumber, String countryCode){int ccode = StringUtil.toInteger(countryCode);long phone = StringUtil.toLong(phoneNumber, 0L);PhoneNumber pn = new PhoneNumber();pn.setCountryCode(ccode);pn.setNationalNumber(phone);return geocoder.getDescriptionForNumber(pn, Locale.CHINESE);}public static void main(String[] args) {System.out.println(PhoneUtil.getCarrier("159655555","86"));}}
相关资料
GitHub 地址:https://github.com/googlei18n/libphonenumber
MAVEN 地址<dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>libphonenumber</artifactId><version>7.0</version></dependency><dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>carrier</artifactId><version>1.11</version></dependency><dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>geocoder</artifactId><version>2.12</version></dependency>
手机号归属地 libphonenumber相关推荐
- go语言判断手机号归属地
简言 1. 网上搜到了很多查询手机号归属地的,要么不是go语言版的,要么复杂难用,笔者推荐的这个很简单 2. 这个第三方库没有利用其它url之类,原理是把全国各地的手机号分类保存到一个文件(phone ...
- 采集练习(九) php 获得手机号归属地
下午在群里看到朋友要查询手机号归属地,于是就稍微看了一下.发现 手机号归属地查询 基本上都是由 手机在线 提供的 .各大网站都拿了这个公司的接口,于是我也想看看怎么获得我需要的信息,手机在线没有免费的 ...
- 网易有道IP,身份证号, 手机号归属地API查询接口
网易有道IP,身份证号, 手机号归属地API查询接口 http://www.youdao.com/smartresult-xml/search.s?type=ip&q=ip地址 GET后返回X ...
- java手机号分割_java 获取手机号归属地
所需pom依赖: com.googlecode.libphonenumber libphonenumber 8.0.0 com.googlecode.libphonenumber geocoder 2 ...
- 苹果手机来电归属地_工信部:手机号归属地不会取消、否则增大诈骗风险-工信部,手机号,归属地,诈骗 ——快科技(驱动之家旗下媒体)-...
提速降费.取消漫游费.取消流量当月清零.流量转赠.携号转网.异地销户.一人多卡--这几年,我国的移动网络建设成效显著,各种便民政策也不断出炉. 近日有网友提议,是否可以参照取消高速公路省界收费站的做法 ...
- Java判断手机号归属地
这篇文章主要介绍了Java获取手机号码归属地的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 封装好的工具类如下: publ ...
- 手机号归属地 mysql脚本_示例演示手机号归属地查询功能
示例演示手机号归属地查询功能(调用webservice接口) 1,新建java项目,创建包 2,点击项目名称创建web service->web service client 3,选择JAX-W ...
- Android获取手机号归属地
工程目录: 添加权限: <uses-permission android:name="android.permission.INTERNET"/> Activity p ...
- 微信小程序实现:输入手机号点击按钮查询手机号归属地
<!--wxml--> <!--wxml--> <view ><input bindinput="listenPhoneInput" ty ...
最新文章
- android使用webview时按后退退出的问题
- Hibernate 获取某个表全部记录时 奇怪现象 (重复出现某个记录)
- matplotlib画图
- 千万级高德服务单元化方案和架构实践
- Centos7.5.1804永久生效修改主机名
- 向spark standalone集群提交任务
- Asp.net生成工作流、审批流的解决方案(asp.net workflow svg)
- EIGRP Metric计算
- Dvbbs 7.1论坛鼠标指针修改方法
- 有谁还记得“开源”已经20年了!
- 酷q显示无法连接到服务器,本机酷Q与服务器nonebot建立通信
- 计算机组装故障排除方法,计算机的硬件组装及故障排除
- vue 2.0项目中使用tinymce富文本框遇到的问题
- 大学生找工作如何做自我介绍?如何做好自我介绍?
- 不用深厚的数学功底也不用深厚的金融知识,用python也能炒股?
- 苹果手机小圆圈怎么设置_敬业签苹果手机版软件小账本怎么设置密码?
- 副主任医师计算机英语,医院职称的英语叫法
- upnp 二级路由_下载宝作为二级路由折腾记-小白篇 - Padavan - 恩山无线论坛 - Powered by Discuz!...
- esxi突然启动不起来了!显示:Error loading /sb.v00
- 10g gtx 光纤通信测试_S03-CH05_UDP 万兆光通信