2010-04-21 70 views

回答

1

您可以从servlet中的HTTP请求标头中获得一些信息,例如user-agent(这样您就知道客户端正在使用哪个浏览器(或者想让我们认为它正在使用))和remote-addr (客户端的IP地址(如果客户端正在使用,则代理服务器的IP地址))。

String userAgent = request.getHeader("user-agent"); // Browser identifier. 
String remoteAddr = request.getRemoteAddr(); // IP address. 

您无法使用Javascript访问系统环境变量。那将是一个安全漏洞。有许多使用ActiveX的方法,但只适用于Redmond团队开发的某种浏览器,但仍然需要降低其安全设置以允许其运行。这是一个很大的禁忌。

获取计算机名称的唯一方法是运行由网页服务的客户端应用程序,并让此客户端应用程序嗅探它并将其发送到服务器端。例如分别使用System.getProperty("COMPUTERNAME")java.net.URLJava Applet。您需要签名,否则会提示安全警告。通过JS

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

虽然我不知道计算机名

+0

感谢您的回复 – user322012 2010-04-21 11:29:24

0

获得用户的IP,我相信它会涉及的ActiveX。它可以通过IE中的ActivexObject使用。不确定它是否有可能,因为它丝毫不安全而对此非常怀疑。

+0

只有当服务器支持服务器端HTML包含时才有效。您显示的构造是IIS特定的。我不希望OP在IIS上运行servlet。此外,ActiveX方法不适用于所有其他浏览器比MSIE,甚至在MSIE上默认情况下不起作用,您必须降低安全设置。 – BalusC 2010-04-21 11:33:15

+0

是的,我刚刚遇到你如何降低安全性到可笑的低水平。所以,坚持使用Java Servlets。 – 2010-04-21 11:36:12

相关问题