Java获得代理环境下的真实IP

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

在有代理环境下要获得真实ip,必须先看X-RealIP和X-Forwarded-For两个http头,如果这两个请求头中有值的话,真实ip就从这里取值,否则再看request.getRemoteAddr()。

如下是获得真实IP的代码:

   /**
     * 获取真实IP:
     *    先取
     * @param request
     * @return
     */
    public static String getClientIP(HttpServletRequest request) {
        String ip = request.getHeader("X-Real-IP");
        if (StringUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("X-Forwarded-For");
        }
        if (StringUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }

        return ip;
    }

标签: 代码

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:使用单例模式实现mysql类

下一篇:java将文件或是文件夹打包压缩成zip格式