Java中获取访问者的ip和或获取访问路径
2015-05-06 14:44
597 查看
/** * 获取访问者IP * * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。 * * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割), * 如果还不存在则调用Request .getRemoteAddr()。 * * @param request * @return */ public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Real-IP"); if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) { return ip; } ip = request.getHeader("X-Forwarded-For"); if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) { // 多次反向代理后会有多个IP值,第一个为真实IP。 int index = ip.indexOf(','); if (index != -1) { return ip.substring(0, index); } else { return ip; } } else { return request.getRemoteAddr(); } } /** * 获得当的访问路径 * * HttpServletRequest.getRequestURL+"?"+HttpServletRequest.getQueryString * * @param request * @return */ public static String getLocation(HttpServletRequest request) { UrlPathHelper helper = new UrlPathHelper(); StringBuffer buff = request.getRequestURL(); String uri = request.getRequestURI(); String origUri = helper.getOriginatingRequestUri(request); buff.replace(buff.length() - uri.length(), buff.length(), origUri); String queryString = helper.getOriginatingQueryString(request); if (queryString != null) { buff.append("?").append(queryString); } return buff.toString(); }
相关文章推荐
- java 或者 js 获取项目访问路径(域名)
- java开发_获取访问者IP
- 如何统计JAVA网站访问次数并获得访问者IP
- java获取客户访问IP
- (转)相对路径和绝对路径的区别,java获取项目访问路径的方法
- java获取访问路径、域名、项目名、请求入参
- 通过request对象获取访问网站用户的 IP 访问者的浏览器名 操作系统名 从哪里转过来 以及 Url 上的所有参数
- JAVA获取当前访问路径+参数
- JAVA获取访问用户的客户端IP(适用于公网与局域网)
- \t\t如何统计JAVA网站访问次数并获得访问者IP
- Java JSP获取访问连接来源及服务器获取访问者信息
- JavaWeb 获取请求网络协议、IP、端口号、项目根路径
- java获取项目访问路径的方法
- java获取客户访问IP
- java获取项目访问路径的方法
- java获取项目访问路径的方法
- java获取项目访问路径的方法
- JAVA获取访问用户的客户端IP(适用于公网与局域网)
- java获取访问者的IP
- java获取访问者真实ip和真实地址以及运营商