java web开发获取客户端访问ip(透过代理和负载均衡)

通常情况下,java的web应用程序可以用 servletRequest.getRemoteAddr() 得到客户端IP地址
程序代码 程序代码

String ipAddress = request.getRemoteAddr();


但是如果用户是通过代理服务器访问,或者通过了负载均衡去访问(特别是云主机),用上面的代码得到的IP地址是代理服务器或者负载均衡服务器的IP,并不是终端用户的实际IP。为了解决这个问题,应该直接通过 HTTP 请求的HEADER 中获取,因为http  请求中包含了很多客户端的信息,直接可以得到

程序代码 程序代码

String ipAddress = request.getHeader("X-FORWARDED-FOR");  
if (ipAddress == null) {  
       ipAddress = request.getRemoteAddr();  
}


除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: java
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.