【发布时间】:2021-02-04 22:42:15
【问题描述】:
在我的 .net core 5 api 中,我需要从请求中获取远程 IP。它在我的测试服务器上运行良好。 从不同的网络检查了几次。
但是
在我的客户端服务器上,无论我从哪里调用 API,我都会获得相同的 IP 地址。 所以,我的问题是在我的服务器上一切正常,但在客户端的服务器上,我得到了错误的 IP 地址。
我已经安装了 .Net 5 SDK 我已经将它与我的服务器和 IIS 进行了比较(不同版本的 IIS,但配置似乎很好)
有什么想法吗?
【问题讨论】:
-
找到网络管理员并与他们讨论。您不能仅从请求本身获取远程 IP 地址,因为该 IP 地址可以是反向代理或介于两者之间的任何东西,并且实际的客户端 IP 地址可能出现在 HTTP 标头中。
-
之前检查
x-forwarded-for标头,如果有值,则使用它。假设您的代理服务器正确填写了该值。 -
能否请您发布如何您是如何获得远程 IP 的?
-
您是否尝试过直接从这些不同的设备调用该 API。
-
@Charlino 几个月前它没有用,但我认为最近发生了一些变化,现在它就像这样简单:protected IPAddress RemoteIpAddress => HttpContext.Connection.RemoteIpAddress;
标签: asp.net-core iis .net-core .net-5 asp.net-core-5.0