JAVA访问ip138.com获取手机号段信息
2010-07-11 11:10
609 查看
手机号段信息类
import java.util.Date;
public class MobileMarkInfo {
private String Mobile7;
private String Province;
private String City;
private String MobileType;
private Date DateCreated;
public MobileMarkInfo(){}
/**
* 手机号地区级卡类型
* @param mobile7 手机号前七位
* @param province 省份
* @param city 城市
* @param mobileType 卡类型
* @param dateCreated 记录创建日期
*/
public MobileMarkInfo(String mobile7, String province, String city, String mobileType, Date dateCreated){
Mobile7 = mobile7;
Province = province;
City = city;
MobileType = mobileType;
DateCreated = dateCreated;
}
public String getMobile7(){
return Mobile7;
}
public void setMobile7(String mobile7){
Mobile7 = mobile7;
}
public String getProvince(){
return Province;
}
public void setProvince(String province){
Province = province;
}
public String getCity(){
return City;
}
public void setCity(String city){
City = city;
}
public String getMobileType(){
return MobileType;
}
public void setMobileType(String mobileType){
MobileType = mobileType;
}
public Date getDateCreated(){
return DateCreated;
}
public void setDateCreated(Date dateCreated){
DateCreated = dateCreated;
}
调用ip138的查询接口,并使用正则表达式获取对应信息
public static MobileMarkInfo GetMobileMarkFromIP138(String mobile7){
//System.out.println(mobile7);
//请求URL
String REQUEST_URL="http://www.ip138.com:8080/search.asp";
//请求方法
String REQUEST_MOTHOD="POST";
//提取手机号码归属地的正则表达式
String REGEX_EXP="^<TD width=\\* align=\"center\" class=tdc2>(.*)</TD>$";
//编译后的正则表达式Pattern对象
Pattern p = Pattern.compile(REGEX_EXP);
MobileMarkInfo mobileMarkInfo = new MobileMarkInfo();
BufferedReader br=null;
try
{
HttpURLConnection httpConn=(HttpURLConnection)new URL(REQUEST_URL).openConnection();
httpConn.setRequestMethod(REQUEST_MOTHOD);
httpConn.setDoOutput(true);
String requestParameter = "mobile="+mobile7+"&action=mobile";
httpConn.getOutputStream().write(requestParameter.getBytes());
httpConn.getOutputStream().flush();
httpConn.getOutputStream().close();
br = new BufferedReader(new InputStreamReader(httpConn.getInputStream(),"GBK"));
String lineStr = null;
while((lineStr = br.readLine())!=null)
{
if("<TD width=\"130\" align=\"center\" noswap>卡号归属地</TD>".equals(lineStr.trim()))
{
lineStr = br.readLine().trim();
Matcher m = p.matcher(lineStr);
if(m.matches())
{
String mobileArea = m.group(1);
//System.out.println(mobileArea);
String[] areas = mobileArea.split(" ", 2);
if(areas.length>1)
{
mobileMarkInfo.setProvince(areas[0]);
mobileMarkInfo.setCity(areas[1]);
}
else
{
return null;
}
}
}
if("<TD width=\"130\" align=\"center\" noswap>卡 类 型</TD>".equals(lineStr.trim())){
lineStr = br.readLine().trim();
Matcher m = p.matcher(lineStr);
if(m.matches())
{
String cardType = m.group(1);
//System.out.println(cardType);
mobileMarkInfo.setMobileType(cardType);
break;
}
}
}
}
catch(IOException e) {
e.printStackTrace();
//Log.writeLog("MobileUtil.GetMobileMarkFromIP138 " + e.getMessage());
}
finally
{
if(br!=null)
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
//Log.writeLog("MobileUtil.GetMobileMarkFromIP138 " + e.getMessage());
}
}
return mobileMarkInfo;
}
import java.util.Date;
public class MobileMarkInfo {
private String Mobile7;
private String Province;
private String City;
private String MobileType;
private Date DateCreated;
public MobileMarkInfo(){}
/**
* 手机号地区级卡类型
* @param mobile7 手机号前七位
* @param province 省份
* @param city 城市
* @param mobileType 卡类型
* @param dateCreated 记录创建日期
*/
public MobileMarkInfo(String mobile7, String province, String city, String mobileType, Date dateCreated){
Mobile7 = mobile7;
Province = province;
City = city;
MobileType = mobileType;
DateCreated = dateCreated;
}
public String getMobile7(){
return Mobile7;
}
public void setMobile7(String mobile7){
Mobile7 = mobile7;
}
public String getProvince(){
return Province;
}
public void setProvince(String province){
Province = province;
}
public String getCity(){
return City;
}
public void setCity(String city){
City = city;
}
public String getMobileType(){
return MobileType;
}
public void setMobileType(String mobileType){
MobileType = mobileType;
}
public Date getDateCreated(){
return DateCreated;
}
public void setDateCreated(Date dateCreated){
DateCreated = dateCreated;
}
调用ip138的查询接口,并使用正则表达式获取对应信息
public static MobileMarkInfo GetMobileMarkFromIP138(String mobile7){
//System.out.println(mobile7);
//请求URL
String REQUEST_URL="http://www.ip138.com:8080/search.asp";
//请求方法
String REQUEST_MOTHOD="POST";
//提取手机号码归属地的正则表达式
String REGEX_EXP="^<TD width=\\* align=\"center\" class=tdc2>(.*)</TD>$";
//编译后的正则表达式Pattern对象
Pattern p = Pattern.compile(REGEX_EXP);
MobileMarkInfo mobileMarkInfo = new MobileMarkInfo();
BufferedReader br=null;
try
{
HttpURLConnection httpConn=(HttpURLConnection)new URL(REQUEST_URL).openConnection();
httpConn.setRequestMethod(REQUEST_MOTHOD);
httpConn.setDoOutput(true);
String requestParameter = "mobile="+mobile7+"&action=mobile";
httpConn.getOutputStream().write(requestParameter.getBytes());
httpConn.getOutputStream().flush();
httpConn.getOutputStream().close();
br = new BufferedReader(new InputStreamReader(httpConn.getInputStream(),"GBK"));
String lineStr = null;
while((lineStr = br.readLine())!=null)
{
if("<TD width=\"130\" align=\"center\" noswap>卡号归属地</TD>".equals(lineStr.trim()))
{
lineStr = br.readLine().trim();
Matcher m = p.matcher(lineStr);
if(m.matches())
{
String mobileArea = m.group(1);
//System.out.println(mobileArea);
String[] areas = mobileArea.split(" ", 2);
if(areas.length>1)
{
mobileMarkInfo.setProvince(areas[0]);
mobileMarkInfo.setCity(areas[1]);
}
else
{
return null;
}
}
}
if("<TD width=\"130\" align=\"center\" noswap>卡 类 型</TD>".equals(lineStr.trim())){
lineStr = br.readLine().trim();
Matcher m = p.matcher(lineStr);
if(m.matches())
{
String cardType = m.group(1);
//System.out.println(cardType);
mobileMarkInfo.setMobileType(cardType);
break;
}
}
}
}
catch(IOException e) {
e.printStackTrace();
//Log.writeLog("MobileUtil.GetMobileMarkFromIP138 " + e.getMessage());
}
finally
{
if(br!=null)
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
//Log.writeLog("MobileUtil.GetMobileMarkFromIP138 " + e.getMessage());
}
}
return mobileMarkInfo;
}
相关文章推荐
- linux下的shell命令的编写,以及java如何调用linux的shell命令(java如何获取linux上的网卡的ip信息)
- (转)asp.net获取访问用户IP地址信息的类
- JAVA获取计算机的IP、名称、操作系统等信息
- java获取客户端访问ip
- linux下的shell命令的编写,以及java怎样调用linux的shell命令(java怎样获取linux上的网卡的ip信息)
- linux下的shell命令的编写,以及java怎样调用linux的shell命令(java怎样获取linux上的网卡的ip信息)
- Java中获取访问者的ip和或获取访问路径
- java获取远端ip并根据ip得到详细地址信息
- 如何根据Ip获取地址信息--Java----待整理完善!!!
- Java获取计算机的IP、名称、操作系统等信息
- Java获取客户端IP地址、MAC地址,根据IP获取地理位置信息代码
- java脚本开发根据客户IP获取IP的具体地理位置信息
- java代码 调用dos的ipconfig /all 命令,获取网卡详细信息
- Selenium2.0功能测试之访问站点及获取页面信息(Java版) 【转】
- linux下的shell命令的编写,以及java如何调用linux的shell命令(java如何获取linux上的网卡的ip信息)
- java代码获取用户访问ip,绝大部分可行
- 【java】服务器端获取用户访问的URL/用户IP/PC还是移动端
- Java基础之访问文件与目录——获取与文件存储有关的信息(GetFileStores)
- java代码 调用dos的ipconfig /all 命令,获取网卡详细信息
- java获取用户访问的真实IP地址和代理IP