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

时间:2019-05-03 01:16:47

标签: 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标头中的地址,理论上应该是客户端IP,但不是。

因此,我按照说明为基于these instructions的ELB启用了代理协议。

但是仍然没有运气。 RemoteIPAddress仍返回相同的ELB IP而不是客户端IP。

在ELB后面的AWS上运行ASP.NET Core MVC应用程序时,是否有人能够获得客户端IP?如果是这样,怎么办?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您只需查看原始IP地址的X-Fowarded-For标头即可。

要访问标题,请查看HttpContext.Current.Request.HeadersHttpContext.Request.Headers

使用该方法在ELB后面的AWS上运行ASP.NET Core MVC应用程序时,我成功列出了原始客户端IP