【问题标题】:How can I get the IP address from a ServletRequest, not a HTTPServletRequest ?如何从 ServletRequest 而不是 HTTPServletRequest 获取 IP 地址?
【发布时间】:2018-11-15 02:30:30
【问题描述】:

我正在尝试寻找一种能够获取 ServletRequest 并找到该请求的 IP 地址的 Java 方法。我找到了类似 this 的方法,但会收到 ServletRequest 而不是 HTTPServletRequest :

【问题讨论】:

    标签: java servlets ip-address clientip


    【解决方案1】:

    我会检查请求是否是 HTTP 请求,如果是,请使用另一个问题中提出的方法。否则,我会盲目相信getRemoteAddr()这个方法。

    if (request instanceof HTTPServletRequest) {
        HTTPServletRequest httpRequest = (HTTPServletRequest) request;
        // read X-Forwarded-For header, etc. etc.
    } else {
        ip = request.getRemoteAddr();
    }
    

    【讨论】:

      【解决方案2】:

      ServletRequest 还提供了java.lang.String getRemoteAddr() 方法,请参阅https://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRemoteAddr() 了解更多详情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-14
        • 2019-02-01
        • 1970-01-01
        • 2019-02-01
        • 2022-01-22
        • 2010-12-21
        • 1970-01-01
        相关资源
        最近更新 更多