阅读275 返回首页    go 阿里云 go 技术社区[云栖]


servlet/jsp中getHeader获取ip

getHeader方法基本用法


System.out.println("Scheme: " + request.getScheme());   

System.out.println("Server Name: " + request.getServerName() );   

System.out.println("Server Port: " + request.getServerPort());   

System.out.println("rotocol: " + request.getProtocol());   

System.out.println("Server Info: " + getServletConfig().getServletContext().getServerInfo());   

System.out.println("Remote Addr: " + request.getRemoteAddr());   

System.out.println("Remote Host: " + request.getRemoteHost());   

System.out.println("Character Encoding: " + request.getCharacterEncoding());   

System.out.println("Content Length: " + request.getContentLength());   

System.out.println("Content Type: "+ request.getContentType());   

System.out.println("Auth Type: " + request.getAuthType());   

System.out.println("HTTP Method: " + request.getMethod());   

System.out.println("ath Info: " + request.getPathInfo());   

System.out.println("ath Trans: " + request.getPathTranslated());   

System.out.println("Query String: " + request.getQueryString());   

System.out.println("Remote User: " + request.getRemoteUser());   

System.out.println("Session Id: " + request.getRequestedSessionId());   

System.out.println("Request URI: " + request.getRequestURI());   

System.out.println("Servlet Path: " + request.getServletPath());   

System.out.println("Accept: " + request.getHeader("Accept"));   

System.out.println("Host: " + request.getHeader("Host"));   

System.out.println("Referer : " + request.getHeader("Referer"));   

System.out.println("Accept-Language : " + request.getHeader("Accept-Language"));   

System.out.println("Accept-Encoding : " + request.getHeader("Accept-Encoding"));   

System.out.println("User-Agent : " + request.getHeader("User-Agent"));   

System.out.println("Connection : " + request.getHeader("Connection"));   

System.out.println("Cookie : " + request.getHeader("Cookie"));   

System.out.println("Created : " + session.getCreationTime());   

获取真实ip

   JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Nagix等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP。

               /**

* 获取客户端ip

* @return

*/

protected String getIp() {

HttpServletRequest request = this.getRequest();

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.trim().equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ip;

}

其他总结

最后更新:2017-05-03 09:30:37

  上一篇:go CC2530之Flash笔记
  下一篇:go 打造云上深度学习的云端实验室