Asp.net Core中的UserHostAddress

时间:2014-11-25 17:22:25

标签: asp.net-core

旧版HttpContext.Request.UserHostAddress的Asp.Net 5中的等效内容是什么?

我尝试this.ActionContext.HttpContext但找不到UserHostAddress和ServerVariables属性。

由于

4 个答案:

答案 0 :(得分:12)

HttpRequest.UserHostAddress提供远程客户端的IP地址。在ASP.NET Core 1.0中,您必须使用HTTP连接功能才能获得相同的功能。 HttpContext具有GetFeature<T>方法,可用于获取特定功能。例如,如果要从控制器操作方法中检索远程IP地址,可以执行以下操作。

var connectionFeature = Context
           .GetFeature<Microsoft.AspNet.HttpFeature.IHttpConnectionFeature>();

if (connectionFeature != null)
{
    string ip = connectionFeature.RemoteIpAddress.ToString();
}

答案 1 :(得分:12)

自最初的答案发布以来,这已经发生了变化。现在通过

访问它
httpContext.Features.Get<IHttpConnectionFeature>()?.RemoteIpAddress

答案 2 :(得分:11)

如果您有权访问HttpContext,则可以从Connection属性获取本地/远程IpAddress,如下所示:

var remote = this.HttpContext.Connection.RemoteIpAddress;
var local = this.HttpContext.Connection.LocalIpAddress;

答案 3 :(得分:0)

对于aspnet rc1-update1,我在X-Forwarded-For标题中找到了IP(带端口),其值可以作为HttpContext.Request.Headers["X-Forwarded-For"].FirstOrDefault()从控制器访问。