【发布时间】:2011-03-06 04:28:29
【问题描述】:
在 JSP 页面中,我想获取查看该页面的用户的 IP 地址。怎么能 ?
【问题讨论】:
-
你需要解决的根本问题是什么?
标签: java jsp ip-address
在 JSP 页面中,我想获取查看该页面的用户的 IP 地址。怎么能 ?
【问题讨论】:
标签: java jsp ip-address
<%= request.getRemoteAddr() %>
返回发送请求的客户端或最后一个代理的 Internet 协议 (IP) 地址。对于 HTTP servlet,与 CGI 变量 REMOTE_ADDR 的值相同。
【讨论】:
只是为了添加到@Lauri 的答案。
如果请求来自代理,则请求中应该有一个"Via" header。
但是,如果有任何中间代理,没有办法找出真正的客户端 IP 地址。而且很多人的浏览器都使用代理,不管他们是否意识到这一点。
【讨论】:
由于 scriptlets(那些 <% %> 的东西)十年来一直不鼓励使用,这里是 EL 解决方案:
<p>Your IP address is: ${pageContext.request.remoteAddr}</p>
如果您实际上打算将其用于某些业务目的而不是显示目的,那么您应该使用 servlet。然后由HttpServletRequest#getRemoteAddr() 提供。
【讨论】:
路瑞的回答
<%= request.getRemoteAddr() %>
不提供请求 URl 的客户端的 IP 地址,而只会提供分配给服务器的 IP。
如果请求来自代理,那么您可以使用它:
request.getHeader("X_FORWARDED_FOR")
它将提供客户端的IP。
【讨论】: