2010-04-21 101 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

相關問題