现在的位置: 首页 > 综合 > 正文

Java中Request获取真实ip

2017年11月24日 ⁄ 综合 ⁄ 共 867字 ⁄ 字号 评论关闭
/**
 * <通用功能辅助类>
 */
public class CommonHelper {
    
    
    /**
     * <从request对象中获取用户IP地址>
     * @param request
     * @return IP地址
     */
    public static String getIp(HttpServletRequest request) {
        String forwards = request.getHeader("x-forwarded-for");
        if (StringUtils.isBlank(forwards) || "unknown".equalsIgnoreCase(forwards)) {
            forwards = request.getHeader("Proxy-Client-IP");
        }
        if (StringUtils.isBlank(forwards) || "unknown".equalsIgnoreCase(forwards)) {
            forwards = request.getHeader("WL-Proxy-Client-IP");
        }
        if (StringUtils.isBlank(forwards) || "unknown".equalsIgnoreCase(forwards)) {
            forwards = request.getRemoteAddr();
        }
        if (StringUtils.isBlank(forwards) || "unknown".equalsIgnoreCase(forwards)) {
            forwards = request.getHeader("X-Real-IP");
        }
        if (forwards != null && forwards.trim().length() > 0) {
            int index = forwards.indexOf(',');
            return (index != -1) ? forwards.substring(0, index) : forwards;
        }
        return forwards;
    }
    
    /** This class should not be instantiated. */
    private CommonHelper() {
    }
}

抱歉!评论已关闭.