From f537abe9f3646c739beaf15076246a2f71a347e9 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 20 二月 2025 16:57:55 +0800
Subject: [PATCH] IOS广告增加区域屏蔽

---
 src/main/java/com/yeshi/buwan/util/IPUtil.java |  351 +++++++++++++---------------------------------------------
 1 files changed, 78 insertions(+), 273 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/util/IPUtil.java b/src/main/java/com/yeshi/buwan/util/IPUtil.java
index cd8c277..b8dff1e 100644
--- a/src/main/java/com/yeshi/buwan/util/IPUtil.java
+++ b/src/main/java/com/yeshi/buwan/util/IPUtil.java
@@ -1,244 +1,20 @@
 package com.yeshi.buwan.util;
 
+import com.google.gson.Gson;
+import net.sf.json.JSONObject;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.lionsoul.ip2region.xdb.Searcher;
+
+import javax.servlet.http.HttpServletRequest;
 import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
+import java.io.File;
 import java.net.URL;
 import java.net.URLConnection;
 import java.net.URLEncoder;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import com.show.api.ShowApiRequest;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.methods.GetMethod;
-
-import net.sf.json.JSONObject;
 
 public class IPUtil {
-    // http://verx.daili666.com/ip/?tid=558287898012218&num=1&operator=2
-    public static void changeIp() {
-        System.getProperties().setProperty("proxySet", "true"); // 濡傛灉涓嶈缃紝鍙浠g悊IP鍜屼唬鐞嗙鍙f纭�,姝ら」涓嶈缃篃鍙互
-        System.getProperties().setProperty("http.proxyHost", "213.85.92.10");
-        System.getProperties().setProperty("http.proxyPort", "80");
-        LogUtil.i(getHtml("http://www.ip138.com/ip2city.asp")); // 鍒ゆ柇浠g悊鏄惁璁剧疆鎴愬姛
-    }
-
-    private static String getHtml(String address) {
-        StringBuffer html = new StringBuffer();
-        String result = null;
-        try {
-            URL url = new URL(address);
-            URLConnection conn = url.openConnection();
-            conn.setRequestProperty("User-Agent",
-                    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB5; .NET CLR 2.0.50727; CIBA)");
-            BufferedInputStream in = new BufferedInputStream(conn.getInputStream());
-            try {
-                String inputLine;
-                byte[] buf = new byte[4096];
-                int bytesRead = 0;
-                while (bytesRead >= 0) {
-                    inputLine = new String(buf, 0, bytesRead, "ISO-8859-1");
-                    html.append(inputLine);
-                    bytesRead = in.read(buf);
-                    inputLine = null;
-                }
-                buf = null;
-            } finally {
-                in.close();
-                conn = null;
-                url = null;
-            }
-            result = new String(html.toString().trim().getBytes("ISO-8859-1"), "gb2312").toLowerCase();
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-        html = null;
-        return result;
-    }
-
-    // 娌℃湁鎵惧埌浠g悊IP
-    // 閲嶅簡
-    public static String getDaiLiIP(String area) {
-        HttpClient client = new HttpClient();
-        GetMethod get = null;
-        try {
-            get = new GetMethod(
-
-                    "http://verx.daili666.com/ip/?tid=559511877530791&num=1&operator=2&filter=on&area="
-                            + URLEncoder.encode(area, "UTF-8") + "");
-        } catch (UnsupportedEncodingException e1) {
-            // TODO Auto-generated catch block
-            e1.printStackTrace();
-        }
-
-        try {
-            client.executeMethod(get);
-            String result = get.getResponseBodyAsString();
-            sendNoticeEmail(result);
-            LogUtil.i(result);
-            if (!result.contains("娌℃湁鎵惧埌"))
-                return result;
-            else
-                return null;
-        } catch (HttpException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    public static String getDaiLiIP1(String area) {
-        HttpClient client = new HttpClient();
-        GetMethod get = null;
-        try {
-            get = new GetMethod(
-
-                    "http://verx.daili666.com/ip/?tid=559186334744019&num=1&area=" + URLEncoder.encode(area, "UTF-8")
-                            + "");
-        } catch (UnsupportedEncodingException e1) {
-            e1.printStackTrace();
-        }
-        try {
-            client.executeMethod(get);
-            String result = get.getResponseBodyAsString();
-            sendNoticeEmail(result);
-            LogUtil.i(result);
-            if (!result.contains("娌℃湁鎵惧埌"))
-                return result;
-            else
-                return null;
-        } catch (HttpException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    // 鎴愰兘
-
-    public static String getDaiLiIP2(String area) {
-        HttpClient client = new HttpClient();
-        GetMethod get = null;
-        try {
-            get = new GetMethod("http://verx.daili666.com/ip/?tid=558287898012218&num=1&filter=on&area="
-                    + URLEncoder.encode(area, "UTF-8"));// &area="+
-            // URLEncoder.encode(area,
-            // "UTF-8") + "
-        } catch (Exception e1) {
-            e1.printStackTrace();
-        }
-        try {
-            client.executeMethod(get);
-            String result = get.getResponseBodyAsString();
-            sendNoticeEmail(result);
-            LogUtil.i(result);
-            if (!result.contains("娌℃湁鎵惧埌"))
-                return result;
-            else
-                return null;
-        } catch (HttpException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    public static String getDaiLiIP3(String area) {
-        HttpClient client = new HttpClient();
-        GetMethod get = null;
-        try {
-            get = new GetMethod("http://verx.daili666.com/ip/?tid=557489926231876&num=1&filter=on&area="
-                    + URLEncoder.encode(area, "UTF-8") + "");
-        } catch (UnsupportedEncodingException e1) {
-            // TODO Auto-generated catch block
-            e1.printStackTrace();
-        }
-        try {
-            client.executeMethod(get);
-            String result = get.getResponseBodyAsString();
-            sendNoticeEmail(result);
-            LogUtil.i(result);
-            if (!result.contains("娌℃湁鎵惧埌"))
-                return result;
-            else
-                return null;
-        } catch (HttpException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    public static String getDaiLiIP4(String area) {
-        HttpClient client = new HttpClient();
-        GetMethod get = null;
-        try {
-            get = new GetMethod("http://verx.daili666.com/ip/?tid=556436495975069&num=1&area="
-                    + URLEncoder.encode(area, "UTF-8") + "");
-        } catch (UnsupportedEncodingException e1) {
-            // TODO Auto-generated catch block
-            e1.printStackTrace();
-        }
-        try {
-            client.executeMethod(get);
-            String result = get.getResponseBodyAsString();
-            sendNoticeEmail(result);
-            LogUtil.i(result);
-            if (!result.contains("娌℃湁鎵惧埌"))
-                return result;
-            else
-                return null;
-        } catch (HttpException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    public static String getDaiLiIP5(String area) {
-        HttpClient client = new HttpClient();
-        GetMethod get = null;
-        try {
-            get = new GetMethod("http://verx.daili666.com/ip/?tid=559418280288916&num=1&filter=on&area="
-                    + URLEncoder.encode(area, "UTF-8") + "");
-
-        } catch (UnsupportedEncodingException e1) {
-            e1.printStackTrace();
-        }
-        try {
-            client.executeMethod(get);
-            String result = get.getResponseBodyAsString();
-            LogUtil.i(result);
-            sendNoticeEmail(result);
-            if (!result.contains("娌℃湁鎵惧埌"))
-                return result;
-            else
-                return null;
-        } catch (HttpException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    private static void sendNoticeEmail(String get) {
-        if (get != null && get.contains("璁㈠崟鍓╀綑鏁伴噺涓嶈冻")) {
-            /*
-             * MailSenderUtil.sendEmail("1101184511@qq.com", "绯荤粺鎻愮ず:IP璁㈠崟鍓╀綑鏁伴噺涓嶈冻",
-             * "IP璁㈠崟鍓╀綑鏁伴噺涓嶈冻锛岃鐧诲綍鍒颁唬鐞�666鍏呭��");
-             */
-        }
+    static {
     }
 
     public static String getRemotIP(HttpServletRequest request) {
@@ -261,56 +37,85 @@
         return ip;
     }
 
-    public static Map<String, String> getIPInfo(String ip) {
-        Map<String, String> map = new HashMap<String, String>();
+
+    /**
+     * 鑾峰彇杩滅▼绔彛
+     *
+     * @param request
+     * @return
+     */
+    public static int getRemotePort(HttpServletRequest request) {
+        return request.getRemotePort();
+    }
+
+    public static IPInfo getLocalIPInfo(String ip) throws Exception {
+        String appcode = "46789780da4f4d92885c3d39b97e3ba9";
+        // 閫氳繃闃块噷浜戠殑鎺ュ彛鑾峰彇IP淇℃伅
+        String url = "https://zjip.market.alicloudapi.com/lifeservice/QueryIpAddr/query?ip=" + URLEncoder.encode(ip, "UTF-8");
+        // 缃戠粶璇锋眰
         HttpClient client = new HttpClient();
-        GetMethod method = new GetMethod("http://ip.taobao.com/service/getIpInfo.php?ip=" + ip);
-        try {
-            client.executeMethod(method);
-            String result = method.getResponseBodyAsString();
-            JSONObject object = JSONObject.fromObject(result);
-            if (object.optInt("code") == 0) {
-                map.put("city", object.optJSONObject("data").optString("city"));
-                map.put("country", object.optJSONObject("data").optString("country"));
-                return map;
-            }
-
-        } catch (HttpException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
+        client.getHttpConnectionManager().getParams().setConnectionTimeout(2000);
+        GetMethod method = new GetMethod(url);
+        method.setRequestHeader("Authorization",  "APPCODE " + appcode);
+        client.executeMethod(method);
+        String result = method.getResponseBodyAsString();
+        System.out.println(result);
+        JSONObject data = JSONObject.fromObject(result);
+        if (data.optInt("error_code") == 0) {
+            data = data.optJSONObject("result");
+            IPInfo ipInfo = new IPInfo(data.optString("country"), data.optString("province"), data.optString("city"));
+            return ipInfo;
+        } else {
+            throw new Exception(data.optString("reason"));
         }
-        return map;
     }
 
-    public static String getIPContry(String ip) {
-        String res = new ShowApiRequest("http://route.showapi.com/2152-1", "49053", "983e020ce60042cd95f39b3ebd4b9563")
-                .addTextPara("ip", ip)
-                .post();
-        JSONObject json = JSONObject.fromObject(res);
-        if (json.optInt("showapi_res_code") == 0) {
-            JSONObject body = json.optJSONObject("showapi_res_body");
-            if (body != null)
-                return body.optString("country");
+    public static class IPInfo {
+        private String province;
+        private String city;
+        private String country;
+
+        public IPInfo(String country, String province, String city) {
+            this.province = province;
+            this.city = city;
+            this.country = country;
         }
-        return "";
+
+        public String getProvince() {
+            return province;
+        }
+
+        public void setProvince(String province) {
+            this.province = province;
+        }
+
+        public String getCity() {
+            return city;
+        }
+
+        public void setCity(String city) {
+            this.city = city;
+        }
+
+        public String getCountry() {
+            return country;
+        }
+
+        public void setCountry(String country) {
+            this.country = country;
+        }
     }
 
-    public static String getIPProvince(String ip) {
+    public static void main(String[] args) {
         try {
-            String res = new ShowApiRequest("http://route.showapi.com/2152-1", "49053", "983e020ce60042cd95f39b3ebd4b9563")
-                    .addTextPara("ip", ip)
-                    .post();
-            JSONObject json = JSONObject.fromObject(res);
-            if (json.optInt("showapi_res_code") == 0) {
-                JSONObject body = json.optJSONObject("showapi_res_body");
-                if (body != null)
-                    return body.optString("state");
-            }
+            IPInfo info = getLocalIPInfo("113.250.254.8");
+            System.out.println(new Gson().toJson(info));
+            info = getLocalIPInfo("193.112.35.168");
+            System.out.println(new Gson().toJson(info));
         } catch (Exception e) {
-
+            e.printStackTrace();
         }
-        return "";
+
     }
 
 }

--
Gitblit v1.8.0