【发布时间】:2011-02-10 11:26:32
【问题描述】:
如何使用 Javascript 或 Java Servlet 获取客户端信息?
客户端信息,例如客户端的计算机名称、IP 地址等。
提前致谢。
【问题讨论】:
标签: java javascript servlets
如何使用 Javascript 或 Java Servlet 获取客户端信息?
客户端信息,例如客户端的计算机名称、IP 地址等。
提前致谢。
【问题讨论】:
标签: java javascript servlets
根据您的网络环境(例如,如果这是在 Intranet 上),您可以通过对客户端的 IP 地址执行反向 DNS 或创建等效的服务器服务来获取客户端名称。
【讨论】:
通过JS获取用户IP
var ip = '<!--#echo var="REMOTE_ADDR"-->';
虽然我不确定计算机名称,但我认为它必须涉及 ActiveX。它曾经可以通过 IE 中的 ActivexObject 实现。不确定它是否可能,高度怀疑它,因为它一点也不安全。
【讨论】:
您可以从 servlet 中的 HTTP 请求标头中获取一些信息,例如 user-agent(以便您知道客户端正在使用哪个浏览器(或者让我们认为它正在使用))和远程- addr(客户端的 IP 地址(或代理的 IP 地址,如果客户端正在使用它))。
String userAgent = request.getHeader("user-agent"); // Browser identifier.
String remoteAddr = request.getRemoteAddr(); // IP address.
您无法使用 Javascript 访问系统环境变量。那将是一个安全漏洞。有一些使用 ActiveX 的方法,但这只适用于由 Redmond 的一个团队开发的特定 Web 浏览器,而且客户端仍需要降低其安全设置以允许它运行。这是一个很大的禁忌。
获取计算机名称的唯一方法是运行由网页提供服务的客户端应用程序,让该客户端应用程序嗅探它并将其发送到服务器端。例如,Java Applet 分别使用 System.getProperty("COMPUTERNAME") 和 java.net.URL。但是,您需要对其进行签名,否则它也会提示安全警告。
【讨论】: