【问题标题】:In JSP page I want to get IP address of user who view the page. How? [duplicate]在 JSP 页面中,我想获取查看该页面的用户的 IP 地址。如何? [复制]
【发布时间】:2011-03-06 04:28:29
【问题描述】:

在 JSP 页面中,我想获取查看该页面的用户的 IP 地址。怎么能 ?

【问题讨论】:

  • 你需要解决的根本问题是什么?

标签: java jsp ip-address


【解决方案1】:
<%= request.getRemoteAddr() %>

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

【讨论】:

    【解决方案2】:

    只是为了添加到@Lauri 的答案。

    如果请求来自代理,则请求中应该有一个"Via" header

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

    【讨论】:

      【解决方案3】:

      由于 scriptlets(那些 &lt;% %&gt; 的东西)十年来一直不鼓励使用,这里是 EL 解决方案:

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

      如果您实际上打算将其用于某些业务目的而不是显示目的,那么您应该使用 servlet。然后由HttpServletRequest#getRemoteAddr() 提供。

      【讨论】:

        【解决方案4】:

        路瑞的回答

        <%= request.getRemoteAddr() %> 
        

        不提供请求 URl 的客户端的 IP 地址,而只会提供分配给服务器的 IP。

        如果请求来自代理,那么您可以使用它:

        request.getHeader("X_FORWARDED_FOR")
        

        它将提供客户端的IP。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-11
          • 1970-01-01
          • 2021-12-24
          • 2016-05-15
          • 1970-01-01
          • 2016-03-04
          • 1970-01-01
          • 2010-09-17
          相关资源
          最近更新 更多