在我们用来获取客户端IP地址的传统ASP.NET中Request.UserHostAddress。但是这不适用于ASP.NET Core 2.0。我们需要一种不同的方式来检索HTTP请求信息。

1.在你的MVC控制器中定义一个变量

private IHttpContextAccessor _accessor;

2. DI进入控制器的构造函数

public SomeController(IHttpContextAccessor accessor)

{

_accessor = accessor;

}

3.回传IP地址

_accessor.HttpContext.Connection.RemoteIpAddress.ToString()

这RemoteIpAddress是在类型IPAddress,而不是string。它包含了IPv4,IPv6等信息,它不像经典的ASP.NET,对我们来说更有用。