package org.ruoyi.common.wechat.web.utils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
/**
|
* @author WesleyOne
|
* @create 2018/11/5
|
*/
|
public class IpUtil {
|
|
/**
|
* 获取用户真实IP(在安防或多层代理场景下)
|
* @param request
|
* @return
|
*/
|
public static String getRealIp(HttpServletRequest request) {
|
String ip = request.getHeader("x-forwarded-for");
|
if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){
|
//多次反向代理后会有多个ip值,第一个ip才是真实ip
|
int index = ip.indexOf(",");
|
if(index != -1){
|
return ip.substring(0,index);
|
}
|
}
|
ip = request.getHeader("X-Real-IP");
|
if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){
|
return ip;
|
}
|
return request.getRemoteAddr();
|
}
|
}
|