admin
2023-04-12 f06a592dd1a7e995bf313ccb5efe7dff73ccfc4e
src/main/java/com/yeshi/buwan/util/IPUtil.java
@@ -1,13 +1,16 @@
package com.yeshi.buwan.util;
import com.google.gson.Gson;
import com.show.api.ShowApiRequest;
import net.sf.json.JSONObject;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
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.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URL;
@@ -15,6 +18,19 @@
import java.net.URLEncoder;
public class IPUtil {
    private static Searcher searcher;
    static {
        try {
            URL url = IPUtil.class.getClassLoader().getResource("ip2region.xdb");
            String path = new File(url.toURI()).getAbsolutePath();
            byte[] vIndex = Searcher.loadVectorIndexFromFile(path);
            searcher = Searcher.newWithVectorIndex(path, vIndex);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    // http://verx.daili666.com/ip/?tid=558287898012218&num=1&operator=2
    public static void changeIp() {
        System.getProperties().setProperty("proxySet", "true"); // 如果不设置,只要代理IP和代理端口正确,此项不设置也可以
@@ -57,177 +73,6 @@
        return result;
    }
    // 没有找到代理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("订单剩余数量不足")) {
            /*
@@ -268,37 +113,12 @@
        return request.getRemotePort();
    }
    public static String getIPContry(String ip) {
        IPInfo ipInfo = getIPInfo(ip);
        return ipInfo == null ? "" : ipInfo.getCountry();
    public static IPInfo getLocalIPInfo(String ip) throws Exception {
        String info = searcher.search(ip);
        String[] infos = info.split("\\|");
        IPInfo ipInfo = new IPInfo(infos[0], infos[2], infos[3]);
        return ipInfo;
    }
    public static String getIPProvince(String ip) {
        IPInfo ipInfo = getIPInfo(ip);
        return ipInfo == null ? "" : ipInfo.getProvince();
    }
    public static IPInfo getIPInfo(String ip) {
        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) {
                    String country = body.optString("country");
                    String state = body.optString("state");
                    String city = body.optString("city");
                    return new IPInfo(country, state, city);
                }
            }
        } catch (Exception e) {
        }
        return null;
    }
    public static class IPInfo {
        private String province;
@@ -336,4 +156,16 @@
        }
    }
    public static void main(String[] args) {
        try {
            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();
        }
    }
}