zoukankan      html  css  js  c++  java
  • 判断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 = "u4e2du56fd";
        private static final String Taiwan = "u53f0u6e7e";
        private static final String HongKong = "u9999u6e2f";
        private static final String Macao = "u6fb3u95e8";
        
        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;
        }
        
    }
  • 相关阅读:
    [LCA] 最近公共祖先
    [DP] D. Beautiful Array
    [模板] [拓扑序列]
    [模板] 区间筛素数
    [DP] 简单的烦恼
    [贪心] 二元组最小值最大
    [模板] 树状数组及其应用
    [Trie] 最大异或对
    [模板][二分]倍增及其应用
    ios学习记录 day31 UI 9 多视图切换 导航控制器
  • 原文地址:https://www.cnblogs.com/leng-yuye/p/3184330.html
Copyright © 2011-2022 走看看