diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/AddressUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/AddressUtils.java index 437137de..8b66fd36 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/AddressUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/AddressUtils.java @@ -2,9 +2,8 @@ package com.ruoyi.common.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.config.Global; -import com.ruoyi.common.json.JSON; -import com.ruoyi.common.json.JSONObject; import com.ruoyi.common.utils.http.HttpUtils; /** @@ -16,12 +15,15 @@ public class AddressUtils { private static final Logger log = LoggerFactory.getLogger(AddressUtils.class); - public static final String IP_URL = "http://ip.taobao.com/service/getIpInfo.php"; + // IP地址查询 + public static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp"; + + // 未知地址 + public static final String UNKNOWN = "XX XX"; public static String getRealAddressByIP(String ip) { - String address = "XX XX"; - + String address = UNKNOWN; // 内网不查询 if (IpUtils.internalIp(ip)) { @@ -29,20 +31,18 @@ public class AddressUtils } if (Global.isAddressEnabled()) { - String rspStr = HttpUtils.sendPost(IP_URL, "ip=" + ip); - if (StringUtils.isEmpty(rspStr)) - { - log.error("获取地理位置异常 {}", ip); - return address; - } - JSONObject obj; try { - obj = JSON.unmarshal(rspStr, JSONObject.class); - JSONObject data = obj.getObj("data"); - String region = data.getStr("region"); - String city = data.getStr("city"); - address = region + " " + city; + String rspStr = HttpUtils.sendGet(IP_URL, "ip=" + ip + "&json=true"); + if (StringUtils.isEmpty(rspStr)) + { + log.error("获取地理位置异常 {}", ip); + return UNKNOWN; + } + JSONObject obj = JSONObject.parseObject(rspStr); + String region = obj.getString("pro"); + String city = obj.getString("city"); + return String.format("%s %s", region, city); } catch (Exception e) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java index 323dbc1a..47004364 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java @@ -49,7 +49,7 @@ public class HttpUtils connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.connect(); - in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "GBK")); String line; while ((line = in.readLine()) != null) {