如何使用Javascript或Java servlet获取客户端信息?

如何使用Javascript或Java servlet获取客户端信息?,java,javascript,servlets,Java,Javascript,Servlets,如何使用Javascript或Java servlet获取客户端信息 客户端信息,如客户端的计算机名、IP地址等 提前感谢。您可以从servlet中的HTTP请求头获取一些信息,例如(以便您知道客户端正在使用(或希望让我们认为它正在使用)的浏览器和远程addr(客户端的IP地址(或代理的IP地址,如果客户端正在使用)) 无法使用Javascript访问系统环境变量。那将是一个安全漏洞。有使用ActiveX的方法,但这只适用于Redmond团队开发的特定webbrowser,而且客户端需要降低其安

如何使用Javascript或Java servlet获取客户端信息

客户端信息,如客户端的计算机名、IP地址等


提前感谢。

您可以从servlet中的HTTP请求头获取一些信息,例如(以便您知道客户端正在使用(或希望让我们认为它正在使用)的浏览器和远程addr(客户端的IP地址(或代理的IP地址,如果客户端正在使用))

无法使用Javascript访问系统环境变量。那将是一个安全漏洞。有使用ActiveX的方法,但这只适用于Redmond团队开发的特定webbrowser,而且客户端需要降低其安全设置以允许其运行。这是一个很大的禁忌

获取计算机名的唯一方法是运行由网页提供服务的客户端应用程序,让该客户端应用程序嗅探并将其发送到服务器端。例如,分别使用
System.getProperty(“COMPUTERNAME”)
java.net.URL
。但是,您需要对其进行签名,否则它也会提示安全警告。

通过JS获取用户IP

var ip = '<!--#echo var="REMOTE_ADDR"-->';
var ip='';

虽然我不确定计算机名,但我认为它必须涉及ActiveX。它过去在IE中通过ActivexObject是可能的。不确定它是否可能,高度怀疑它,因为它一点也不安全

根据您的网络环境(例如,如果这是在Intranet上),您可以通过在客户端的IP地址上执行反向DNS,或通过创建等效的服务器服务来获取客户端名称。

仅当相关服务器支持服务器端HTML包括时,此功能才起作用。显示的构造是特定于IIS的。我不希望OP在IIS上运行servlet。此外,ActiveX方法在MSIE以外的所有浏览器上都不起作用,甚至在MSIE上,它在默认情况下也不起作用,您必须降低安全设置。是的,我刚刚遇到了您如何将安全性降低到可笑的低水平。因此,只需坚持使用Java servlet即可。
var ip = '<!--#echo var="REMOTE_ADDR"-->';