2010-06-21 42 views

回答

6
<%= request.getRemoteAddr() %> 

返回发送请求的客户机或最后一个代理的互联网协议(IP)地址。对于HTTP servlet,与CGI变量REMOTE_ADDR的值相同。

4

只是添加到@ Lauri的答案。

如果请求是通过代理发出的,请求中应该有"Via" header

但是,有没有办法找出什么是真正的客户端IP地址,如果有任何中间代理。很多人的浏览器都使用代理,无论他们是否意识到这一点。

10

由于小脚本(那些<% %>的东西)是因为十年气馁,这里的EL解决方案:

<p>Your IP address is: ${pageContext.request.remoteAddr}</p> 

如果你确实要使用这对于一些商业目的,而不是显示的目的,那么你应该正在使用一个servlet。然后由HttpServletRequest#getRemoteAddr()提供。

2

Luri的回答

<%= request.getRemoteAddr() %> 

不提供客户端谁请求的URL的IP地址,但只提供IP分配给服务器。

如果请求是通过代理,那么你可以使用这个:

request.getHeader("X_FORWARDED_FOR") 

它会提供客户端的IP地址。