根据手机号码查询手机号码归属地,采用2种查询方式,如果第一种没查询到,则会自动使用第二种查询!

package com.brainlong.utils;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.StringReader;

import java.net.URL;

import java.net.URLConnection;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;

import org.xml.sax.InputSource;

import org.xml.sax.SAXException;

public class MobileLocationUtil {

/**

* 归属地查询

* @param mobile

* @return mobileAddress

*/

@SuppressWarnings("unused")

private static String getLocationByMobile(final String mobile) throws ParserConfigurationException, SAXException, IOException{

String MOBILEURL = " http://www.youdao.com/smartresult-xml/search.s?type=mobile&q=";

String result = callUrlByGet(MOBILEURL + mobile, "GBK");

StringReader stringReader = new StringReader(result);

InputSource inputSource = new InputSource(stringReader);

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();

DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();

Document document = documentBuilder.parse(inputSource);

if (!(document.getElementsByTagName("location").item(0) == null)) {

return document.getElementsByTagName("location").item(0).getFirstChild().getNodeValue();

}else{

return "无此号记录!";

}

}

/**

* 获取URL返回的字符串

* @param callurl

* @param charset

* @return

*/

private static String callUrlByGet(String callurl,String charset){

String result = "";

try {

URL url = new URL(callurl);

URLConnection connection = url.openConnection();

connection.connect();

BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),charset));

String line;

while((line = reader.readLine())!= null){

result += line;

result += "\n";

}

} catch (Exception e) {

e.printStackTrace();

return "";

}

return result;

}

/**

* 手机号码归属地

* @param tel 手机号码

* @return 135XXXXXXXX,联通/移动/电信,湖北武汉

* @throws Exception

* @author JIA-G-Y

*/

public static String getMobileLocation(String tel) throws Exception{

Pattern pattern = Pattern.compile("1\\d{10}");

Matcher matcher = pattern.matcher(tel);

if(matcher.matches()){

String url = "http://life.tenpay.com/cgi-bin/mobile/MobileQueryAttribution.cgi?chgmobile=" + tel;

String result = callUrlByGet(url,"GBK");

StringReader stringReader = new StringReader(result);

InputSource inputSource = new InputSource(stringReader);

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();

DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();

Document document = documentBuilder.parse(inputSource);

String retmsg = document.getElementsByTagName("retmsg").item(0).getFirstChild().getNodeValue();

if(retmsg.equals("OK")){

String supplier = document.getElementsByTagName("supplier").item(0).getFirstChild().getNodeValue().trim();

String province = document.getElementsByTagName("province").item(0).getFirstChild().getNodeValue().trim();

String city = document.getElementsByTagName("city").item(0).getFirstChild().getNodeValue().trim();

if (province.equals("-") || city.equals("-")) {

return (tel + "," + supplier + ","+ getLocationByMobile(tel));

}else {

return (tel + "," + supplier + ","+ province + city);

}

}else {

return "无此号记录!";

}

}else{

return tel+ ":手机号码格式错误!";

}

}

}

手机号归属地 java_JAVA手机号码归属地查询相关推荐

  1. java区分手机号归属地_JAVA手机号码归属地查询

    根据手机号码查询手机号码归属地,采用2种查询方式,如果第一种没查询到,则会自动使用第二种查询! package com.brainlong.utils; import java.io.Buffered ...

  2. php mysql 手机归属地_PHP手机号码归属地查询代码(API接口/mysql)_PHP教程

    文章来介绍一下关于手机号码归属地实现方法,我们可以利用api接口与mysql+php来实例有需要的同学看看. 首先我们介绍使用自己的数据库查询多个手机号码,那还是建议你拥有一个自己的的手机号码数据库. ...

  3. php mysql 手机归属地_PHP手机号码归属地查询代码(API接口/mysql)

    首先我们介绍使用自己的数据库查询多个手机号码,那还是建议你拥有一个自己的的手机号码数据库.正常情况下,只是满足一般查询的话,你不需要去购买专业版的手机号码数据库,增加无谓成本.我免费为你提供一个ACC ...

  4. java手机号归属地查询_【原创】Java实现手机号码归属地查询

    网络上已经有很多的手机号码归属地查询的API接口,但是这些接口总是有一些大大小小的缺陷. 总结一下这些缺陷: 1.要直接将它的搜索框链接形式粘到自己的页面,点击查询的时候还要跳转到他们的网站来展示归属 ...

  5. 【原创】Java实现手机号码归属地查询

    网络上已经有很多的手机号码归属地查询的API接口,但是这些接口总是有一些大大小小的缺陷. 总结一下这些缺陷: 1.要直接将它的搜索框链接形式粘到自己的页面,点击查询的时候还要跳转到他们的网站来展示归属 ...

  6. Python实现手机号码归属地查询功能

    文章目录 一.使用场景 二.问题描述 三.解决方案 四.方法补充 方法一: 方法二 一.使用场景 对手机号码进行地域分析,需要查询归属地: 二.问题描述 针对数据集比较大的情况,通过脚本来处理,使用多 ...

  7. 手机号码归属地查询 - 一刀工具

    手机号码归属地快速查询移动,联通,电信手机号码归属地,免费手机号码运营商查询,手机归属地查询大全. 代码片段 //获取手机信息static function getMobile($mobile){tr ...

  8. PHP+MYSQL实现手机号码归属地查询…

    手机号码归属地查询这个概念大家都不陌生吧!像我们在百度搜索框中输入一个正确的手机号码,点击搜索,就会显示这个手机号码的归属地和卡类型,非常方便.今天要为大家说的就是利用PHP+MYSQL的方法来实现手 ...

  9. 调用聚合数据API实现手机号码归属地查询

    调用聚合数据API实现手机号码归属地查询 1.作者介绍 2.相关介绍 2.1 什么是聚合数据? 2.2 API介绍 2.3 手机号码归属地 3.实验过程 3.1如何调用聚合数据API 3.2代码实现 ...

最新文章

  1. django-request对象
  2. MySQL 数据库mysqlbinlog使用问题:unknown variable ‘default-character-set=utf8‘.解决方法
  3. 面向对象编程(OOP)和面向过程编程
  4. python获取系统时间函数_Python常用时间操作总结【取得当前时间、时间函数、应用等】...
  5. 【MySQL】主从复制架构方案 - 笔记
  6. php如何编写通信协议,定制通讯协议
  7. manjaro linux下载软件,manjaro linux
  8. 【LeetCode笔记】198. 打家劫舍(Java、动态规划)
  9. 从键盘中读取字符流 自定义异常
  10. XLNet(Generalized Autoregressive Pretraining for Language Understanding) 论文笔记
  11. 2013年11月17日
  12. 剑指offer 面试题32 从1到n整数中1出现的次数
  13. vba遍历字符串_EXCEL 公式 遍历查找 查找字符串
  14. 高通WLAN芯片点灯方法-QCA9563操控9880GPIO进行点灯
  15. Excel数据分析案例一——业绩达成分析
  16. 机器学习——LASSO算法
  17. Kaggle数据集Telco-Customer-Churn.csv特征相关性分析(用LabelEncoder编码)
  18. linux下安装rabbitMQ和springboot+rabbitMQ使用案例
  19. Taro从零创建微信小程序步骤
  20. 网页上腾讯视频下载mp4格式到本地

热门文章

  1. 25 万行逆向源码遭 GitHub 下架!
  2. 企业级Hadoop大数据平台实战(1)——基础知识说明
  3. 2010年上半年网络管理员上午试卷参考答案与解析
  4. 数据安全能力成熟度模型DSMM----八、通用安全
  5. 计算机系统实验:模型机(十六)另一篇?
  6. Exchange反压保护机制导致内部邮件传送延迟
  7. Apollo 应用与源码分析:Monitor监控-软件监控-模块存活监控
  8. CPU发现高危安全漏洞 修复要损失多达39%性能
  9. os+rom+android+6.0+n9005,三星N9005刷机包 Aurora.Note3.Full.Note5.Port.No.8 重新调试系统底层 提升系统流畅度...
  10. 【网络工程】广域网与接入网