2、asp.net core 2.x上配置
第一步:在控制器中定义变量
private IHttpContextAccessor _accessor;
第二步: 控制器的构造函数进行注入
public ValuesController(IHttpContextAccessor accessor) { _accessor = accessor; }
第三步:在action中 调用
_accessor.HttpContext.Connection.RemoteIpAddress.ToString()
第四步:我们应该要在startup.cs中配置IHttpContextAccessor
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); }
第五步:可以运行测试一下:
发现已经获取到IP地址啦。
注:在ASP.NET 2.1中,在startup.cs需要修改成以下的内容:
services.AddHttpContextAccessor(); services.TryAddSingleton<IActionContextAccessor, ActionContextAccessor>();
该RemoteIpAddress
是类型的IPAddress
,不是string
。它包含IPv4,IPv6和其他信息,它不像经典的ASP.NET,它对我们更有用。