爲了讓我寫的東西像下面的計算機名稱:獲取計算機名
Dim client As System.Net.IPHostEntry
client = System.Net.Dns.GetHostByAddress(Request.ServerVariables.Item("REMOTE_HOST"))
label1.text=client.hostname
此代碼在服務器計算機上,但在客戶端機器的不工作。
有沒有其他的方法來找到計算機名稱。
爲了讓我寫的東西像下面的計算機名稱:獲取計算機名
Dim client As System.Net.IPHostEntry
client = System.Net.Dns.GetHostByAddress(Request.ServerVariables.Item("REMOTE_HOST"))
label1.text=client.hostname
此代碼在服務器計算機上,但在客戶端機器的不工作。
有沒有其他的方法來找到計算機名稱。
你需要看看來自客戶端的請求,例如:
label1.Text = HttpContext.Current.Request.UserHostName;
的代碼,就像你是最好企圖獲取客戶端的DNS機器名稱:
Dim host As IPHostEntry
'Get the server variable value
host = Dns.GetHostEntry(HttpContext.Current.Request.ServerVariables.Item("REMOTE_HOST"))
您在使用「REMOTE_HOST」服務器變量時所做的是索取主機名稱,請求。再次閱讀最後一部分,它提供了爲什麼它不總能產生正確結果的答案。
如果你對此有一個負載平衡器坐在它前面的webfarm您的網站,您將得到負載平衡器,而不是原來的客戶發出請求的價值。 「REMOTE_HOST」應該可能有詳細信息,說明是主機發出請求的最後一個。這就是爲什麼使用該服務器變量不可靠。
這也是一個安全風險,所以JavaScript不允許獲取這些信息,所以這也不是一個選項。純粹出於信息的緣故,一種舊式的暴力方式是通過使用ActiveX控件來實現的,但這也不是一個可行的選擇。關鍵是除非你在一個域上,並且可以通過IP進行反向查找,否則100%的時間可能無法獲得客戶的機器名稱。
你會得到什麼錯誤? Request.ServerVariables.Item(「REMOTE_HOST」)返回什麼? – jgauffin 2012-03-29 14:41:13