[code]获取真实IP

相关资料:
http://wenku.baidu.com/view/f39604e59b89680203d82514.html

    /**
     * 获取客户端真实IP
     * 如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,
     * 那么真正的用户端的真实IP则是取X-Forwarded-For中第一个非unknown的有效IP字符串。
     * @method: getClientIpAddr
     * @param request
     * @return  String
     * @createDate: 2017年1月20日
     * @2017, by Kelvin.
     */
    public static String getClientIpAddr(HttpServletRequest request) {
        String ip = request.getHeader("x-forwarded-for");
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        return ip;
    }

猜你喜欢

转载自1971161579.iteye.com/blog/2354187
今日推荐