旧版HttpContext.Request.UserHostAddress
的Asp.Net 5中的等效内容是什么?
我尝试this.ActionContext.HttpContext
但找不到UserHostAddress和ServerVariables属性。
由于
答案 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()
从控制器访问。