Java获取客户端真实IP地址

原创
2014/08/19 10:26
阅读数 501
public static String getIpAddr(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.getHeader("HTTP_CLIENT_IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        return ip;
    }

感觉还是比较全面的。

展开阅读全文
打赏
0
23 收藏
分享
加载中
渊泉如渊博主

引用来自“Neoman”的评论

如果是多重代理,会有问题
嗯,的确没有考虑到
2014/08/27 10:25
回复
举报
如果是多重代理,会有问题
2014/08/19 19:27
回复
举报
更多评论
打赏
2 评论
23 收藏
0
分享
返回顶部
顶部