2011-07-14 69 views
2

我一直在檢索互聯網上的IP地址和客戶端機器名稱幾天(不在本地網絡)
所以我找到了一些獲取IP地址的方法,但我不能找到獲取客戶機名稱或收集有關我的網站用戶的信息的方法?
我知道有很多關於這個問題的重複線程,但其中許多是舊的或不工作。
以下服務器端代碼返回SERVER名稱不是客戶端計算機名稱!如何用jQuery或JavaScript或服務器端代碼獲取客戶端(用戶)計算機名稱(計算機名稱)。 (審查的可能方式)

string UserHost_ComputerName4 = Dns.GetHostName();//Server Name 
string UserHost_ComputerName5 = Environment.MachineName;//Server Name 

及以下線路對用戶端的錯誤,但它適用於服務器端頁面運行:

string UserHost_ComputerName3 = Dns.GetHostEntry(Request.ServerVariables["REMOTE_ADDR"]).HostName.ToString();//Has Error 

你將導致我可能和可行的方法(JavaScript或jQuery的或服務器端)獲取客戶端(訪問我的網站的用戶)計算機名稱?

回答

3

至於我記得,爲了得到:

  • Request.ServerVariables["REMOTE_ADDR"]
  • Request.ServerVariables["REMOTE_HOST"]
  • Request.ServerVariables["REMOTE_USER"]

您必須啓用Reverse DNS Lookup爲你的IIS。

p.s. ATM我不能測試它自己,所以我不能肯定這是否會解決問題烏爾

+0

感謝評論:但Request.ServerVariables [「REMOTE_ADDR」]爲我工作,沒有任何改變iis和Request.ServerVariables [「REMOTE_HOST」]返回一個奇妙的字符串,以巴比倫開頭... – MoonLight

+0

@LostLord是否向實際運行IIS的計算機的頁面發出請求?換句話說,你是否向本地主機發出請求?如果是這樣,這可能解釋行爲。如果不是,你可以指定用戶端有哪些類型的錯誤? –

+0

起初,我糾正我的第一條評論(感謝回答) - 我有遠程訪問我的服務器,我可以測試服務器或本地的網頁!該服務器使用Windows Server 2008和最新的iis ver(由我自己安裝) - 在服務器瀏覽器中運行該頁面後,在該服務器中配置iis和dns後,每件事情都在運行(但不是好的 - 我們還沒有用戶機器名稱)/當我通過我的個人計算機瀏覽它時,我們因爲該行而出現錯誤 - 但記住這個錯誤不能告訴你任何事情,因爲它在用戶端! – MoonLight

1

不能完全確定您可以做到這一點的所有方式,但可以通過ActiveX來實現,這可能是個問題,因爲這隻能在某些瀏覽器中使用。我不相信有一種方法可以用純JavaScript來做到這一點,並且它不可能作爲服務器,因爲服務器無法訪問它所連接的客戶端的這些細節。

+0

你是對的/但爲什麼很多人說這些代碼適用於他們/我發現一個腳本在vb使用activeX /但它只適用於IE ...但我很困惑這個問題/ – MoonLight

3

試試這個:

string PCName = Dns.GetHostEntry(Request.ServerVariables["REMOTE_ADDR"]).HostName; 

但是如果你想電腦主機的名稱

string HostPCName = Dns.GetHostName(); 
相關問題