之前看別的地方說獲取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值就可以了