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;
}
}