判断ip是否在中国内地

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

 

posted @ 2013-07-11 17:09  Marble  阅读(3789)  评论(0编辑  收藏