获取ip工具类

This commit is contained in:
shuzheng 2017-03-14 17:59:46 +08:00
parent df59a291b0
commit 7331751e26
1 changed files with 27 additions and 2 deletions

View File

@ -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;
}
}