用Java解析手机号获取手机信息(归属地、Sim卡类型、移动或是联通、区号、邮编)...

更新时间:2023-05-14 23:19:05 阅读: 评论:0

⽤Java解析⼿机号获取⼿机信息(归属地、Sim卡类型、移动
或是联通、区号、邮编)...
[b]⽣活中经常遇到要根据⼿机号码查询⼿机的归属地或者其他信息,如下所⽰:[/b]
⼿机号码:159********
省份:浙江
城市:杭州
区号:0571
邮编:310000
移动公司名称:中国移动
卡类型:GSM
为此,本⼈闲得蛋疼的就写了段Java代码,通过⽹上现有的⼿机解析API获取⼿机详细信息。
理学士
[b]设计思想:[/b]
⽤百度搜索了下,⽹上有个⽹址有API可以提供,详细信息见连接[url]/Locating/help.htm#IFRAME[/url]
本⼈是⽤HttpClient基于超链接的形式进⾏查询,例如[url]/arch.htm?m=139********[/url]
[b]下⾯详细解释下代码:[/b]
⾸先,我定义了⼀个⼿机对象,⽤来存储⼿机信息
package ls.bean.phone;
/**
* $Id: $
*
* @author zhengtian
* @time 2012-12-26
*/
public class MobilePhone {
// 移动⼿机号码
private long phone_number;
// 省份
private String province;
// 城市
private String city;
// 城市区号
private String city_code;
/
/ 城市邮编
private long zip_code;
大致的英文// 卡类型
private String card_type;
// 移动公司名称
private String corporation_name;
/**
* 输出⼿机详细信息
web equation*
* @return
*/
public String getPhoneInfo() {
StringBuilder info = new StringBuilder();
info.append("⼿机号码:").append(phone_number).append("\n");
info.append("省份:").append(province).append("\n");
info.append("区号:").append(city_code).append("\n");
info.append("邮编:").append(zip_code).append("\n");
info.append("移动公司名称:").append(corporation_name).append("\n");  info.append("卡类型:").append(card_type).append("\n");
String();
}
public long getPhone_number() {
return phone_number;
}
public void tPhone_number(long phone_number) {
this.phone_number = phone_number;
}
public String getProvince() {
return province;
}
public void tProvince(String province) {
this.province = province;
}
public String getCity() {
return city;good life
}
public void tCity(String city) {
this.city = city;
}
public String getCity_code() {
return city_code;
}
public void tCity_code(String city_code) {
this.city_code = city_code;
}
public long getZip_code() {hottopic
return zip_code;
}
public void tZip_code(long zip_code) {
this.zip_code = zip_code;
}
public String getCard_type() {
胶囊公寓return card_type;
}
public void tCard_type(String card_type) {
this.card_type = card_type;
}
public String getCorporation_name() {
return corporation_name;
}
public void tCorporation_name(String corporation_name) {
}
接着,是⽤HttpClient对⼿机号码进⾏解析,附件中tools-0.0.1-SNAPSHOT-sources.jar是源代码,tools_fat.jar是可执⾏jar包。phoneTools.rar是我⾃⼰⽤的Maven⼯程,有兴趣的朋友们,可以直接导⼊后查看代码和运⾏。如果朋友们需要重新打可运⾏的jar包,可以参考⼀下链接[url]/blog/1765626[/url]
下⾯讲解下解析⼿机号码的类,如下所⽰:
package ls.rvice.phone;
import java.io.IOException;
import net.sf.json.JSONObject;
import s.httpclient.HttpClient;
import s.httpclient.HttpException;
import s.httpclient.HttpMethod;
import s.httpclient.NameValuePair;
import s.httpclient.UrnamePasswordCredentials;
import s.httpclient.auth.AuthScope;
学理发学费大概多少钱import hods.GetMethod;
import s.lang.StringUtils;
import ls.bean.phone.MobilePhone;
import ls.util.JsonUtils;
/**
* ⼿机信息查询⼯具类,主要实现根据⼿机号码查询⼿机归属地等信息。
*
* @author zhengtian
* @time 2012-12-26
*/
public class MobilePhoneTool {
/**
* ⼿机信息查询全局变量
*/
// ⼿机信息查询⽹址
the influence
private static final String URL = "/Locating/aspx";
/**
* 上⽹代理全局变量
*/
// 代理Host
private static final String proxyHost = "10.10.10.78";
// 代理端⼝
private static final int proxyProt = 8080;
// 代理⽤户名
private static final String proxyUrName = "zhengtian";
// 代理密码
private static final String proxyPassword = "";
/**
* 响应包编码⽅式
*/
private static final String responChart = "UTF-8";
private MobilePhone getMobilePhone(long phone_number) {
HttpClient client = new HttpClient();
// 设置代理great wall
//tProxy(client, proxyHost, proxyProt, proxyUrName, proxyPassword);
/
/ get⽅式
HttpMethod method = new GetMethod(URL);
NameValuePair m = new NameValuePair("m", String.valueOf(phone_number));
NameValuePair output = new NameValuePair("output", "json");
method.tQueryString(new NameValuePair[] { m, output });
// 服务器返回的状态(200:ok)
int statusCode = uteMethod(method);
if (statusCode == 200) {
// 服务器返回的信息
String responBody = new ResponBody(), responChart);    if (StringUtils.isNotEmpty(responBody)) {
JSONObject json = JSONObject.fromObject(responBody);
return convertJsonToMobilePhone(json);
}
System.out.println("查询结果为空");
} el {
System.out.println("查询失败");
}
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
/
/ 释放连接
}
return null;
}
/**
* 将json对象转换为MobilePhone
*
* @param json
* @return
*/
private MobilePhone convertJsonToMobilePhone(JSONObject json) {
if (JsonUtils.isNotEmpty(json)) {
MobilePhone phone = new MobilePhone();
// 获取⼿机号码
long mobile = LongValue(json, "Mobile");
phone.tPhone_number(mobile);
// 获取省份
String province = StringValue(json, "Province");
phone.tProvince(province);
// 获取城市
String city = StringValue(json, "City");
phone.tCity(city);
// 获取城市区号
String areacode = StringValue(json, "AreaCode");
phone.tCity_code(areacode);
// 获取邮编
long postcode = LongValue(json, "PostCode");
phone.tZip_code(postcode);
// 获取公司
String corp = StringValue(json, "Corp");
phone.tCorporation_name(corp);
// 获取sim卡类型
String card = StringValue(json, "Card");
phone.tCard_type(card);
return phone;
}
return null;
}
*
* @param client
* @param proxyHost
* @param proxyProt
* @param urName
* @param password
*/
private void tProxy(HttpClient client, String proxyHost, int proxyProt, String urName, String password) {
// 设置HTTP代理IP和端⼝
smart什么意思
// 代理认证
UrnamePasswordCredentials creds = new UrnamePasswordCredentials(urName, password);
}
public static void main(String[] args) {
long no = args != null && args.length > 0 ? Long.valueOf(args[0]) : 186********L;
if (args != null && args.length > 1) {
no = Long.valueOf(args[0]);
}
MobilePhoneTool phone = new MobilePhoneTool();
MobilePhone info = MobilePhone(no);
if (info != null) {
System.out.PhoneInfo());
}
}
}
如果机器上有jdk的环境,那么可以直接⽤cmd运⾏tools_fat.jar,详细⽤法如下
[img]/upload/attachment/0078/9951/a523a560-9057-3177-acd1-5c4870baee25.jpg[/img]

本文发布于:2023-05-14 23:19:05,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/108695.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:查询   获取   机号码   代理   解析   归属   机信息   移动
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图