request.getRemoteAddr()在tomcat中的实现原理

wartskcaj 发布于 2012/03/07 15:01
阅读 1K+
收藏 0

很多时候我们需要获取用户的Ip地址,我们往往通过request.getRemoteAddr()获取,

但如果用户用了代理,为了得到用户的真实Ip地址则需要通过header中的

X-Forwarded-For,Proxy-Client-IP,WL-Proxy-Client-IP,

HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR

等来判断,今天发现好像还有个clientip

我想问的是在tomcat中这个getRemoteAddr()方法具体是怎么实现的,他得到用户Ip的原理是什么?tomcat在实现该方法时难道没有考虑代理的情况还需要我们自己写?

不同的servlet容器实现应该也是不完全相同的,其他的如jboss,weblogic是怎么处理的呢?

如果其他的容器实现不同,那相同的代码在不同的容器中运行效果也是不会完全相同的

坐等高手解答!!!

加载中
0
红薯
红薯

http://www.oschina.net/code/snippet_12_2038

请看这个类的 getRemoteAddr 方法

wartskcaj
wartskcaj
我今天测试用手机访问,x-forwarded-for是空的,但有个clientip,可见header是可以随便加的? 所以我想知道tomcat的原生方法是怎么实现的
返回顶部
顶部