根据手机号码查询手机号码归属地,采用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 手机号归属地 dat,GitHub - china-qd/phonedata: 手机号码归属地信息库、手机号归属地查询 phone.dat 最后更新:2020年04月...

    手机号码归属地信息库.手机号归属地查询 这可能是github上能找到的最新最全的中国境内手机号归属地信息库 基于GO语言实现,使用二分查找法. 归属地信息库文件大小:4,040,893 字节 归属地信 ...

  3. 好用的手机号码归属地、吉凶及号码估值查询API接口

    最近用了爱淘号(www.ataohao.com)的手机号码信息查询接口,功能比较齐全,数据更新相对还算及时(现在就已经支持工信部上周新批的198.199等号段了),最关键的是完全免费. 爱淘号API接 ...

  4. php根据手机号区分地址,PHP判断手机号码归属地、获取手机号码归属地

    PHP判断手机号码归属地.获取手机号码归属地: /** * 判断手机号码归属地 * @param string $phone * @param array $regions 省 * return bo ...

  5. 手机号归属地_【号码归属地查询工具】

    本工具用于批量查询手机号码归属地信息. 数据需求 把要要查询的手机号码放到"号码清单"文件中,将清单文件放置与工具同目录下: 手机号码 18666793012 1379287108 ...

  6. python怎么查找代码位置查询_Python查询IP地址归属完整代码

    本文实例为大家分享了Python查询IP地址归属的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # -*- coding: utf-8 -*- #查找IP地址归属地 ...

  7. 微信公众平台功能大杂烩 - ip/域名查询 车牌号归属地查询 手机归属地查询 公交查询 英汉互译...

    我看到有些公众平台比如:海南大学 功能非常丰富,包含四六级成绩查询.自习室空位查询.小i机器人.天气查询.快递查询.笑话.火车查询.人品计算... 我实现了海南大学微信公众平台的部分功能,再根据自己需 ...

  8. 批量查询ip地址归属地教程

    网上基本都是只能单个查询,这个可以批量查询,支持导出TXT和Excel,而且不限制数量.先上图 使用方法:(1)导入TXT(2)标准化(3)开始查询即可 ​​​ 如果需要请关注微信公众号未来自主研究中 ...

  9. php解析手机号 归属地,PHP通过API获取手机号码归属地,api手机号码_PHP教程

    PHP通过API获取手机号码归属地,api手机号码 该API接口自 2011年 SAE平台上线稳定运行至今,增加了17号段的支持,欢迎各种采集注限制 并发10 详细使用说明 接口地址:http://a ...

  10. 航班信息管理系统java_java实现航班信息查询管理系统

    本文实例为大家分享了java航班信息查询管理系统的具体代码,供大家参考,具体内容如下 Air Infomation System 基于控制台的航班信息系统,简称AIS 具体要求如下: (1)显示航班信 ...

最新文章

  1. mac下server开发环境配置
  2. Maven 连接私服资源库配置
  3. 信息安全系统第十三周学习总结 20135218 姬梦馨
  4. 《C++ Primer》2.11节练习
  5. 分号可以用来分段么_更高效的GMX分段模拟方法:修改tpr文件
  6. 解释一下全连接层CNN中全连接层是什么样的
  7. ios 数字键盘左下角添加按钮_IOS数字键盘左下角添加完成按钮的实现方法
  8. H3C IPv6地址配置命令
  9. csdn中让图片居中
  10. 计算平均成绩,科目数未知
  11. Cadence Orcad Capture属性窗口转置的方法图文教程
  12. 10个英文手写字体下载
  13. 电视家3.0怎么安装到电视上?常用三种方法介绍
  14. 色彩的搭配,象征,以及web标准色
  15. 微信小程序云开发--云存储的使用(一)
  16. c语言水仙花数pow,c语言如何解水仙花数
  17. mysql1273,phpmysql错误 – #1273 – #1273 – 未知排序规则:’utf8mb4_general_ci’
  18. Anki 学习排行榜
  19. 收费短剧小剧场类影视小程序源码 支持多运营模式+详细搭建教程
  20. 国内云服务器,服务商优缺点分析

热门文章

  1. 15分钟带你入门Pandas
  2. 【0CTF/TCTF2021预选】[Misc] pypypypy Sloth writeup python字节码编程
  3. STM32单片机跑马灯实验解析
  4. HNOI 2015 落忆枫音 题解
  5. 3D摇杆控制器一种简单实现!Cocos Creator 3D!
  6. java linux 消息队列_我的第一个Linux程序----利用消息队列来实现IPC
  7. 【嵌入式】---- 单片机常用单位
  8. 解决Mac谷歌浏览器问题
  9. 如何快速合并多个TXT文件
  10. python3两个三阶矩阵相乘_矩阵相乘的实现-python