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 */ 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)); return (getLocationByMobile(tel) + "," + supplier); }else { // return (tel + "," + supplier + ","+ province + city); return (province + city + "," + supplier ); } }else { return "无此号记录!"; } }else{ return tel+ ":手机号码格式错误!"; } } public static void main(String[] args) { try { System.out.println(MobileLocationUtil.getMobileLocation("187****254")); } catch (Exception e) { e.printStackTrace(); } } }
相关推荐
填入手机号码,获取手机号码归属地
主要介绍了Java获取手机号码归属地的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
用java实现手机归属地查询,参数为手机号
可以通过在项目中添加此 form的代码,查询号码归属地
手机号码归属地查询JAVA项目,是以文档的形式保存的
java 调用 360 api 接口实现批量查询手机号码归属地
2022最新手机号段归属地查询,mysql直接执行sql脚本,创建`tel_dict`表及47万条数据。
简易java查询IP归属地示例代码。 面向中国大陆地区的 手机号码、电话号码、IP地址 归属地查询库。 IP地址库来源于 [ip2region](http://git.oschina.net/lionsoul/ip2region)。 手机号码段和电话号码区号信息来源于 ...
Java基于聚合网API做的很基础的手机号归属地查询,供大家一起共同分享学习。
NULL 博文链接:https://zheng12tian.iteye.com/blog/1765696
本文介绍java使用淘宝API读写json实现手机归属地查询功能,代码简单,大家可以参考使用
需要建立一个归属地的表,把归属地.mdb数据通过TxtReader.java程序导进去。这样知道通过手机号码去数据库里面去取就行了。
用开源API,获取天气情况,号码,归属地,并用手机飞信免费发送
全球及地区GSM网络代码表--IMSI表
自动ip拨号,手机号码归属地查询,更改归属地位置,常用号码查询。 安全专题: 1、通过0权限上传下载数据,重启手机等案例,深入讲解android沙箱,安全机制和权限模型。 2、通过分析恶意代码的提权漏洞,讲解如何...
HBuilder+mui+(html5+)搭建的安卓app项目,主要功能:身份证查询、银行归属地查询、手机号码归属地查询、IP地址查询、标准身材计算、翻译(单词句子翻译)、智能问答、获取手机设备信息、天气查询
手机号码归属地 历史上的今天 等等... 查看粉丝信息 UI 数据展示 等级徽章 UI展示方式 徽章获取与更新 在用户信息进入关注的功能 UI 数据搜索填充 设置界面 查看缓存、清除缓存操作和功能 关于 检查...
|--系统信息之获得手机sim卡序列号 |--缓存优化之几种方案lastModified |--缓存优化之本地缓存优化(超过规定值或SD卡容量不够时) |--网络post提交查询请求 |--网络之HttpClient的get和post用法 |--网络之判断网络...