是否可以知道客户端(浏览器)是否与服务器在同一台机器上运行?

时间:2013-06-10 09:30:02

标签: java http servlets

我有一个用Java编写的服务器端应用程序。

我们使用Jetty来提供我们的servlet。

最终用户使用浏览器“使用”我们的应用。

从服务器端的角度来看,当我得到HttpServletRequest时,是否可以从与服务器安装在同一台机器上运行的浏览器中知道它?

(我正在测试这种情况,我想对此做点什么)

2 个答案:

答案 0 :(得分:1)

您可以使用ServletRequest.getRemoteHost()返回发送请求的客户端的完全限定名称,并将其与本地主机名InetAddress.getLocalHost().getCanonicalHostName()进行比较

答案 1 :(得分:0)

我猜您可以检查请求的IP地址是否与服务器相同,或者是否来自localhost?

我想这可以提供帮助:

String getRemoteIP(HttpServletRequest request) {
    String xff = request.getHeader("X-Forwarded-For");
    if (xff != null) {
        return xff.split("[\\s,]+")[0];
    }
    return request.getRemoteAddr();
}

将此地址与服务器的地址进行比较。

我从here

获取了此代码