我有一个用 Java 编写的服务器端应用程序。
我们使用 Jetty 来提供我们的 servlet。
最终用户使用浏览器“使用”我们的应用程序。
从服务器端的角度来看,当我得到一个时,HttpServletRequest
是否有可能从运行在与安装服务器的同一台机器上的浏览器中知道它?
(在这种情况下,我显然正在测试,我想做一些事情)
您可以使用ServletRequest.getRemoteHost()
which 返回发送请求的客户端的完全限定名称并将其与本地主机名进行比较InetAddress.getLocalHost().getCanonicalHostName()
我想您可以检查请求的IP地址是否与服务器的相同,或者它是否来自本地主机?
我想这会有所帮助:
String getRemoteIP(HttpServletRequest request) {
String xff = request.getHeader("X-Forwarded-For");
if (xff != null) {
return xff.split("[\\s,]+")[0];
}
return request.getRemoteAddr();
}
将此地址与服务器的地址进行比较。
我从这里拿了这段代码