| 
					
				 | 
			
			
				@@ -16,11 +16,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))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -28,17 +32,23 @@ public class AddressUtils 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (RuoYiConfig.isAddressEnabled())
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String rspStr = HttpUtils.sendPost(IP_URL, "ip=" + ip);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (StringUtils.isEmpty(rspStr))
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                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)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 log.error("获取地理位置异常 {}", ip);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return address;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            JSONObject obj = JSONObject.parseObject(rspStr);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            JSONObject data = obj.getObject("data", JSONObject.class);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String region = data.getString("region");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String city = data.getString("city");
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            address = region + " " + city;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return address;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }
 
			 |