获取访问者ip的方法

来源:互联网 发布:java 断点续传 编辑:程序博客网 时间:2024/05/20 11:24
/** 2      * 获取访问者IP 3      *  4      * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。 5      *  6      * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割), 7      * 如果还不存在则调用Request .getRemoteAddr()。 8      *  9      * @param request10      * @return11      */12     public static String getIpAddr(HttpServletRequest request) {13         String ip = request.getHeader("X-Real-IP");14         if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {15             return ip;16         }17         ip = request.getHeader("X-Forwarded-For");18         if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {19             // 多次反向代理后会有多个IP值,第一个为真实IP。20             int index = ip.indexOf(',');21             if (index != -1) {22                 return ip.substring(0, index);23             } else {24                 return ip;25             }26         } else {27             return request.getRemoteAddr();28         }29     }
0 0
原创粉丝点击