.NET CORE WEBAPI 后端获取来源IP
之前看别的地方说获取IP用
ip = HttpContext.Current.Request.UserHostAddress;
在ASP.NET Core 2.0及更高版本中不起作用。您必须从ConfigureServices方法中的Startup.cs类中注入 HttpContextAccessor实例。
实际上换成
ip = HttpContext.Connection.RemoteIpAddress.ToString();
就可以了 也不需要注入实例更不需要在构造函数那边重新赋值
但是还是很多人反应得到的地址是127.0.0.1
那是因为你直接在服务器端测试访问接口 肯定就是这个本地地址
如果是.NET 更高的版本就会是IPV6的内网地址::1
所以要到服务器上 用不同的网络请求才会有结果
另一个原因是经过了一层nginx这类的反向代理工具 把IP过滤了
需要配置下ip穿透 把ip通过header传给后端就可以了
然后后端提取这个header的ip值就可以了