ASP.NET Core获取客户端IP地址

            // ASP.NET Core 2.1的注入方式
            //services.AddHttpContextAccessor();
            //services.TryAddSingleton<IActionContextAccessor, ActionContextAccessor>();

            // 注入
            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();

2、控制器里获取IP

        private readonly IHttpContextAccessor _accessor;

        public HomeController(IHttpContextAccessor accessor)
        {
            _accessor = accessor;
        }

        public IActionResult Index()
        {
            // 获取客户端的IP
            string ip = _accessor.HttpContext.Connection.RemoteIpAddress.ToString();
            return View();
        }

3、页面里获取IP

@inject Microsoft.AspNetCore.Http.IHttpContextAccessor HttpContextAccessor
@{
    ViewData["Title"] = "Privacy Policy";
}
<h1>@ViewData["Title"]</h1>

<p>客户端IP:@HttpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString().</p>