Asp.net Core中的UserHostAddress

Fra*_*llo 29 asp.net-core

什么是旧的Asp.Net 5中的等价物HttpContext.Request.UserHostAddress

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

谢谢

ry8*_*806 17

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

var remote = this.HttpContext.Connection.RemoteIpAddress;
var local = this.HttpContext.Connection.LocalIpAddress;
Run Code Online (Sandbox Code Playgroud)


ksp*_*rin 14

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

httpContext.Features.Get<IHttpConnectionFeature>()?.RemoteIpAddress
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说总是"空".(我在VM上的IIS上部署网站) (2认同)

Bad*_*dri 12

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

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

if (connectionFeature != null)
{
    string ip = connectionFeature.RemoteIpAddress.ToString();
}
Run Code Online (Sandbox Code Playgroud)

  • 在IIS 8中运行时,这似乎无法正常工作.代码中返回的IP地址与请求日志中的IIS输出不同.对此进行的任何更新都可以让它在IIS中正常工作? (2认同)