asp.net-mvc - 当服务器位于 AWS ELB 之后时,ASP.NET Core MVC 应用程序如何获取客户端 IP 地址?

标签 asp.net-mvc amazon-web-services ip-address amazon-elb

我在包含 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.HeadersHttpContext.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/

相关文章:

MySQL数据库与ASP.NET全局连接

asp.net-mvc - 使用 Session 进行 Asp.net MVC3 长轮询

amazon-web-services - 如何在终止 SSL 的 AWS 网络负载均衡器后面使用 HTTP2

android - 如何获取 IPV4 格式的 IP 地址

php - cURL 输出中的 "local_ip"和 "primary_ip"是什么意思?

asp.net-mvc - 无法删除数据库,因为它当前正在使用MVC

asp.net-mvc - Controller 应该如何将不同的实体或集合传回 View

email - 错误 "Maximum DNS-interactive terms limit (10) exceeded"

python - 在 python boto 中使用 cognito 获取 AWS 凭证

php - CloudFlare 并通过 PHP 记录访问者 IP 地址