2009-12-30 62 views
0

我找不到沒有aspx頁面的IP地址(所以在Linux服務器上)。如果它可以通過wcf工作,那麼它也很好。獲取IP地址(當沒有ASP.NET可用(在Linux服務器上))

+3

您可以請擴展您正在嘗試完成的任務嗎?我不確定你想要做什麼。什麼IP地址?在客戶端或服務器上的那個? – 2009-12-30 15:00:12

+0

我的錯誤,我的意思是客戶端IP地址。 我嘗試使用WebClient的一個小的API http://www.hostip.info給出地址的位置,但不是IP。 http://www.whatismyip.com/automation/n09230945.asp(甚至http://www.google.com/)在WebClient的DownloadStringCompleted中給出SecurityException:安全錯誤。我找不到原因。 – user240617 2009-12-31 06:28:16

回答

1

我認爲最好的選擇是讓Web服務將IP地址返回給Silverlight客戶端,前提是您可以在應用程序中使用WCF。我不相信直接在Silverlight中獲取客戶端IP的直接方式。

就這樣一個簡單的Web方法應該工作:

[OperationContract] 
public string GetClientIpAddress() 
{ 
    return HttpContext.Current.Request.UserHostAddress; 
} 

您可能無法如果請求是通過代理服務器來獲得實際的客戶機IP地址,但你可以檢查HTTP_X_FORWARDED_FOR頭以及如果可用的話。

HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 

我不會依賴,作爲一個可靠的客戶端IP地址,雖然,因爲不是所有的代理服務器遵守這一HTTP頭,它也很容易被欺騙。