我正在包含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?如果是这样,怎么办?
任何帮助将不胜感激。
答案 0 :(得分:1)
您只需查看原始IP地址的X-Fowarded-For标头即可。
要访问标题,请查看HttpContext.Current.Request.Headers
或HttpContext.Request.Headers
使用该方法在ELB后面的AWS上运行ASP.NET Core MVC应用程序时,我成功列出了原始客户端IP