2010-03-10 35 views
3

我正在將JS文件放到遠程服務器上。我想知道請求來自哪裏。獲取引用者的Web服務器名稱

ie:我在google.com上有一個js,當用戶點擊由js生成的鏈接時,它觸發了我服務器上的一些c#代碼,但是我也在yahoo.com上擁有相同的js和id能夠知道請求來自哪裏。

如何找到它?

+0

可你只需要使用網址標頭或者你希望做一個查詢字符串或類似的東西跟蹤? – 2010-03-10 04:17:34

+0

我不想打擾那,但我想我發現它System.Web.HttpContext.Current.Request.ServerVariables [key.ToString()]只需要找到它的關鍵 – DarthVader 2010-03-10 04:18:29

回答

5

在ASP.NET中,引用頁面由Request.UrlReferrer作爲Uri對象給出。

這也可作爲Request.ServerVariables["HTTP_REFERER"]作爲一個字符串。

0

繼自己的主角爲「System.Web.HttpContext.Current.Request.ServerVariables」,爲ServerVariables財產MSDN文檔包含有關如何檢索所有可用的命名服務器變量一些示例代碼:

int loop1, loop2; 
NameValueCollection coll; 

// Load ServerVariable collection into NameValueCollection object. 
coll=Request.ServerVariables; 
// Get names of all keys into a string array. 
String[] arr1 = coll.AllKeys; 
for (loop1 = 0; loop1 < arr1.Length; loop1++) 
{ 
    Response.Write("Key: " + arr1[loop1] + "<br>"); 
    String[] arr2=coll.GetValues(arr1[loop1]); 
    for (loop2 = 0; loop2 < arr2.Length; loop2++) { 
     Response.Write("Value " + loop2 + ": " + Server.HtmlEncode(arr2[loop2]) + "<br>"); 
    } 
} 

此外,它還包含一個鏈接,通過IIS

支持的所有服務器變量

例如,「REMOTE_HOST」變量會給你:

發出請求的主機的名稱。如果服務器沒有這個信息,它將設置REMOTE_ADDR並將其保留爲空。

7

System.Environment.MachineName應該包含服務器的名稱。

+0

這個答案是不正確的問題是要求推薦人的域名。但是,這正是我需要的。謝謝! – 2015-11-23 11:47:22

2
Request.ServerVariables["SERVER_NAME"] 

你也可能需要:

Request.ServerVariables["SERVER_PORT"]