package com.framework.app.service.cc.util;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class MobileUtil {
public static String getMobileAddress(String mobile) throws Exception
{
String address = "";
try
{
mobile = mobile.trim();
if (mobile.matches("^(13|15|18)\\d{9}$") || mobile.matches("^(013|015|018)\\d{9}$")) //以13,15,18开头,后面九位全为数字
{
String url = "http://www.ip138.com:8080/search.asp?action=mobile&mobile=" + mobile;
URLConnection connection = (URLConnection) new URL(url).openConnection();
connection.setDoOutput(true);
InputStream os = connection.getInputStream();
Thread.sleep(100);
int length = os.available();
byte[] buff = new byte[length];
os.read(buff);
String s = new String(buff, "gbk");
int len = s.indexOf("卡号归属地");
s = s.substring(len, len+100);
len = s.lastIndexOf("</TD>");
address = s.substring(0, len);
len = address.lastIndexOf(">");
address = address.substring(len+1, address.length());
address = address.replace(" ", ",");
address = address.replace("d> -->", "");
address = address.replace(" -->", "");
address = address.replace("-->", "");
s = null;
buff = null;
os.close();
connection = null;
}
}
catch(Exception e)
{
address = "未知";
System.out.println("手机所属地查询失败====================");
}
return address;
}
public static void main(String[] args) throws Exception{
System.out.println(getMobileAddress("130xxxxxxxx"));
}
}
//****************************************************
说明:利用该方法查询有些不太稳定