您的位置:首页 > 其它

判断ip是否在中国内地

2013-07-11 17:09 239 查看
package com.example.countrytest;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

/*
* 通过ip判断是否是中国内地
*/
public class IpChina {

private static final String ipUrl = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json";
private static final String China = "\u4e2d\u56fd";
private static final String Taiwan = "\u53f0\u6e7e";
private static final String HongKong = "\u9999\u6e2f";
private static final String Macao = "\u6fb3\u95e8";

public static boolean ipIsChinaInland() {
try {
String json = getIpData();
System.out.println("json="+json);
JSONObject jsonObject = new JSONObject(json);
String country = jsonObject.getString("country");
String city = jsonObject.getString("province");
if(country!=null && city!=null) {
if(country.equals(China)) {
if(city.equals(Taiwan) || city.equals(HongKong) || city.equals(Macao)) {
// deal with non-china inland
} else {
//  deal with china inland
return true;
}
} else {
//  deal with non-china inland
}
} else {
// deal with non-china inland
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}

private static String getIpData() throws Exception  {
HttpGet httpRequest = new HttpGet(ipUrl);// 建立http get联机
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);// 发出http请求
if (httpResponse.getStatusLine().getStatusCode() == 200)
return EntityUtils.toString(httpResponse.getEntity());// 获取相应的字符串
return null;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: