2011-09-18 245 views
2

我有一個ASP.Net 4.0應用程序,發佈在IIS 7.0服務器上的公司Intranet網絡上,我想將客戶端的IP地址保存在我的數據庫中。所以我想獲取客戶端的IP地址和計算機名稱。獲取客戶端的IP地址和計算機名稱?

我試過從互聯網搜索的方法,但我得到「服務器IP」「服務器名稱」。我認爲這是合乎邏輯的,因爲我嘗試的所有方法都是服務器端的C#代碼。

所以,我想我必須使用像JavaScript這樣的客戶端代碼。

有沒有人有正確的方法來做到這一點?

回答

11

您可以在Request對象上使用UserHostAddressUserHostName屬性:

string ip = Request.UserHostAddress; 
string hostname = Request.UserHostName; 
+0

這可能是最好的選擇,但我知道我的瀏覽器從未發送這些報頭。也許這些是IE功能。 – Pointy

+2

@Pointy,用戶的IP地址不作爲任何頭髮送。它由底層套接字確定,因此使用哪個瀏覽器發送HTTP請求並不重要。事實上,您可以使用WebClient編寫.NET程序來發送來自某臺計算機的HTTP請求,並且客戶端的IP地址仍將被提取。就用戶主機名而言,ASP.NET試圖使用DNS來解決它。 –

+1

啊,我明白你的意思 - 這是服務器端基礎設施的功能。謝謝! – Pointy

相關問題