我在包含 ELB 的 Elastic Beanstalk 环境中在 AWS 上运行 ASP.NET Core MVC 应用程序。
我使用此代码获取客户端的 IP 地址:
HttpContext.Connection.RemoteIpAddress.ToString()
但是,这会返回负载均衡器的 IP 地址,而不是客户端的 IP 地址。我相信
RemoteIPAddress
返回存储在 X-Forwarded-For HTTP header 中的地址,理论上应该是客户端 IP,但事实并非如此。所以我按照说明启用了基于 these instructions 的 ELB 代理协议(protocol).
但仍然没有运气。
RemoteIPAddress
仍然返回相同的 ELB IP 而不是客户端 IP。在 ELB 后面的 AWS 上运行 ASP.NET Core MVC 应用程序时,是否有人能够获取客户端 IP?如果是这样,怎么做?
任何帮助将不胜感激。
最佳答案
你可以看看X-Forwarded-For
原始 IP 地址的 header 。
要访问标题,请查看 HttpContext.Current.Request.Headers
或 HttpContext.Request.Headers
.
使用该方法在 ELB 后面的 AWS 上运行 ASP.NET Core MVC 应用程序时,我成功列出了原始客户端 IP。
关于asp.net-mvc - 当服务器位于 AWS ELB 之后时,ASP.NET Core MVC 应用程序如何获取客户端 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55962116/