我的一個類中的函數被調用GetIpAddress()返回以下字符串: System.Web.HttpContext.Current.Request.ServerVariables [「REMOTE_ADDR」]asp.net c#ip地址丟失後回發?
這一切運作良好定期頁面加載和得到我的IP地址,但是當我例如讓用戶發表評論時,則IP地址在回發後丟失,並且我得到返回的空字符串。
我在這裏錯過了什麼嗎?
親切的問候, 馬克
我的一個類中的函數被調用GetIpAddress()返回以下字符串: System.Web.HttpContext.Current.Request.ServerVariables [「REMOTE_ADDR」]asp.net c#ip地址丟失後回發?
這一切運作良好定期頁面加載和得到我的IP地址,但是當我例如讓用戶發表評論時,則IP地址在回發後丟失,並且我得到返回的空字符串。
我在這裏錯過了什麼嗎?
親切的問候, 馬克
你有它包裹在這樣的事情?
if (!Page.IsPostBack) {
GetIpAddress()
}
您需要每次調用該函數或將其存儲在共享變量中。
另一個選項(As @Marc提到)可以簡單地調用Request.UserHostAddress
而不是GetIpAddress
......它的鍵入量幾乎相同,但是您不必爲其定製函數。
使用這些的:
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; // a user is going through a proxy server
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
HttpContext.Current.Request.UserHostAddress;
一些解釋: 遠程主機發出請求的REMOTE_ADDR的IP地址。
REMOTE_HOST發出請求的主機的名稱。如果服務器沒有這個信息,它將設置REMOTE_ADDR並將其保留爲空。
當您使用Request.UserHostAddress時會發生什麼? – Marc 2010-03-08 17:52:05
您可以顯示您調用GetIpAddress()或至少在哪個事件中的代碼區域嗎? – curtisk 2010-03-08 17:56:05