手机号归属地 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 ...
最新文章
- ArrayList源码分析(基于JDK1.6)
- 顺序栈实现括号匹配的检验(C语言实现)【栈】
- 【postgresql初始化失败】initdb: invalid locale settings; check LANG and LC_* environment variables
- ubuntu检查端口是否开启_Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息...
- mysql交叉连接后生成的记录总数_4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)_MySQL...
- 计算机开机自启文件夹,电脑开机自动打开文件夹解决方法
- 详解智能建筑消防预警系统设计与实现
- xcode自动刷新resource下的文件
- win10主题更换_WIN10好用的小软件
- Ivy Book List
- 计算机制图如何绘制太极图,太极图,如何用PS绘制太极图?
- 分销与供应链电子元器件采购需要掌握哪些基础知识?
- 知识付费对接微信公众号订阅消息
- 基于BP神经网络飞机颠簸预测
- 软路由系统, OpenWrt (Lede), Ubuntu server, 爱快, ROS, Pfsense, m0n0wall, OPNsense
- mathcad使用小结
- 谁更亏?刘强东事件让马云损失了56亿,而刘强东仅损失20亿!
- (笔记)关于spit截取表单提交数据区分符号中英文及正则判断
- 激光雷达目标检测 (上)
- Windows系统装linux双系统,无需U盘
热门文章
- 衢州学院的计算机专业是本科还是专科,浙江本科对比:选择衢州学院还是温州大学好?...
- IDEA创建Maven项目
- 基于EP4CE10F17C8N芯片详解Altera Cyclone系列器件命名规则
- Typora (free in Win Linux ) 0.9.86
- 在网站页脚添加QQ邮箱的“邮我”功能
- 推行国产操作系统的优劣
- iview 如何去掉Carousel的指示器
- CFS调度器学习总结
- pgsql实现json格式转换
- DAY10微信小程序项目开发技术总结