【问题标题】:Get Server IP address from JSP Request/session object从 JSP 请求/会话对象获取服务器 IP 地址
【发布时间】:2011-03-11 18:29:03
【问题描述】:

如何从 JSP 页面获取服务器的 IP 地址?

现在,我能做的就是request.getLocalName(),它返回服务器名称,而不是IP地址?

【问题讨论】:

    标签: java jsp request ip-address response


    【解决方案1】:
    String addr = request.getRemoteAddr();
    

    【讨论】:

      【解决方案2】:
      request.getHeader("X_FORWARDED_FOR") 
      

      【讨论】:

        【解决方案3】:

        要获取实际的服务器 IP 和主机名(实际的而不是由例如代理设置的),请使用:

                    <%@ page import="java.net.*" %> 
                    [...]
                    <%
                    String hostname, serverAddress;
                    hostname = "error";
                    serverAddress = "error";
                    try {
                        InetAddress inetAddress;
                        inetAddress = InetAddress.getLocalHost();
                        hostname = inetAddress.getHostName();
                        serverAddress = inetAddress.toString();
                    } catch (UnknownHostException e) {
        
                        e.printStackTrace();
                    }
                    %>
                    <li>InetAddress: <%=serverAddress %>
                    <li>InetAddress.hostname: <%=hostname %>
        

        【讨论】:

          【解决方案4】:

          其实对于服务器的IP地址,你需要使用

          String serverIP = request.getLocalAddr();
          

          【讨论】:

          • 谢谢。为什么我在 javadoc 上没有看到? @_@
          • @portoalet:可能没有忽略它。 getLocalAddr() 是为 2.4 版本的 servlet 规范添加的(我相信 Google 的第一个结果是 Java EE 1.3 的 Javadoc)
          • 十年后:&lt;%= request.getLocalAddr() %&gt;JSP 使用 Apache Tomcat 9。
          【解决方案5】:
          String sIPAddr = request.getRemoteAddr();
          

          【讨论】:

          • 这会检索发起请求的客户端的 IP。
          猜你喜欢
          • 2013-05-31
          • 1970-01-01
          • 2015-06-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-08
          • 2014-02-03
          • 2018-01-13
          相关资源
          最近更新 更多