繁体   English   中英

回发后,asp.net C#IP地址丢失了?

[英]asp.net c# ip address lost after postback?

我在类中的一个函数称为GetIpAddress(),该函数返回以下字符串:System.Web.HttpContext.Current.Request.ServerVariables [“ REMOTE_ADDR”]

这一切在常规页面加载中都能很好地工作并获取我的IP地址,但是例如当我让用户发表评论时,回发后IP地址就会丢失,并且我会返回一个空字符串。

我在这里想念什么吗?

亲切的问候,马克

使用这些:

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并将其留空。

你有包裹在这样的东西吗?

if (!Page.IsPostBack) {
    GetIpAddress()
}

您需要每次调用该函数,或将其存储在Shared变量中。

另一个选择(如@Marc所述)是简单地调用Request.UserHostAddress而不是GetIpAddress ...它的键入量几乎相同,但是您不必为此提供自定义功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM