疯狂的狮子li
2021-10-27 695cb6d76b838b1e4cb161bae335faa948dca12a
ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java
@@ -14,45 +14,45 @@
/**
 * 获取地址类
 *
 * @author ruoyi
 * @author Lion Li
 */
@Slf4j
public class AddressUtils {
   // IP地址查询
   public static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp";
    // IP地址查询
    public static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp";
   // 未知地址
   public static final String UNKNOWN = "XX XX";
    // 未知地址
    public static final String UNKNOWN = "XX XX";
   public static String getRealAddressByIP(String ip) {
      String address = UNKNOWN;
      if (StringUtils.isBlank(ip)){
         return address;
      }
      // 内网不查询
      ip = "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : HtmlUtil.cleanHtmlTag(ip);
      if (NetUtil.isInnerIP(ip)) {
         return "内网IP";
      }
      if (RuoYiConfig.isAddressEnabled()) {
         try {
            String rspStr = HttpUtil.createGet(IP_URL)
               .body("ip=" + ip + "&json=true", Constants.GBK)
               .execute()
               .body();
            if (StringUtils.isEmpty(rspStr)) {
               log.error("获取地理位置异常 {}", ip);
               return UNKNOWN;
            }
            Map<String, String> obj = JsonUtils.parseMap(rspStr);
            String region = obj.get("pro");
            String city = obj.get("city");
            return String.format("%s %s", region, city);
         } catch (Exception e) {
            log.error("获取地理位置异常 {}", ip);
         }
      }
      return address;
   }
    public static String getRealAddressByIP(String ip) {
        String address = UNKNOWN;
        if (StringUtils.isBlank(ip)) {
            return address;
        }
        // 内网不查询
        ip = "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : HtmlUtil.cleanHtmlTag(ip);
        if (NetUtil.isInnerIP(ip)) {
            return "内网IP";
        }
        if (RuoYiConfig.isAddressEnabled()) {
            try {
                String rspStr = HttpUtil.createGet(IP_URL)
                        .body("ip=" + ip + "&json=true", Constants.GBK)
                        .execute()
                        .body();
                if (StringUtils.isEmpty(rspStr)) {
                    log.error("获取地理位置异常 {}", ip);
                    return UNKNOWN;
                }
                Map<String, String> obj = JsonUtils.parseMap(rspStr);
                String region = obj.get("pro");
                String city = obj.get("city");
                return String.format("%s %s", region, city);
            } catch (Exception e) {
                log.error("获取地理位置异常 {}", ip);
            }
        }
        return address;
    }
}