|
|
@@ -37,7 +37,7 @@ public class RequestUtil {
|
|
|
* @param request
|
|
|
* @return
|
|
|
*/
|
|
|
- public String getBasePath(HttpServletRequest request) {
|
|
|
+ public static String getBasePath(HttpServletRequest request) {
|
|
|
StringBuffer basePath = new StringBuffer();
|
|
|
String scheme = request.getScheme();
|
|
|
String domain = request.getServerName();
|
|
|
@@ -52,5 +52,30 @@ public class RequestUtil {
|
|
|
}
|
|
|
return basePath.toString();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取ip工具类,除了getRemoteAddr,其他ip均可伪造
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String getIpAddr(HttpServletRequest request) {
|
|
|
+ String ip = request.getHeader("Cdn-Src-Ip"); // 网宿cdn的真实ip
|
|
|
+ if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
|
|
|
+ ip = request.getHeader("HTTP_CLIENT_IP"); // 蓝讯cdn的真实ip
|
|
|
+ }
|
|
|
+ if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
|
|
|
+ ip = request.getHeader("X-Forwarded-For"); // 获取代理ip
|
|
|
+ }
|
|
|
+ if (ip == null || ip.length() == 0 || " unknown".equalsIgnoreCase(ip)) {
|
|
|
+ ip = request.getHeader("Proxy-Client-IP"); // 获取代理ip
|
|
|
+ }
|
|
|
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
|
|
+ ip = request.getHeader("WL-Proxy-Client-IP"); // 获取代理ip
|
|
|
+ }
|
|
|
+ if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
|
|
+ ip = request.getRemoteAddr(); // 获取真实ip
|
|
|
+ }
|
|
|
+ return ip;
|
|
|
+ }
|
|
|
+
|
|
|
}
|