我的一个类中的函数被调用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