如何将HTTP_X_FORWARDED_FOR从 IIS 传递到 aspx 页
本文关键字:IIS aspx FOR HTTP FORWARDED | 更新日期: 2023-09-27 17:55:15
我的网站在 Amazon ELB 上运行。我需要为我们在网站上做的事情捕获客户的 IP 地址 - 这并不理想,但我们现在肯定需要 IP。
这曾经在专用服务器上工作得很好。但是自从迁移到 ELB 后,当我使用Request.UserHostAddress
时,我只将 ELB 的内部 IP 地址作为客户端的 IP 地址
从我添加的一些博客X-Forwarded-For
,即使我的IIS日志具有正确的客户端IP,该IP也不会传递到实际的网页。
事实上,标题中没有这样的字段......或任何接近标题中的字段。
检查Request.Headers.ToString()
给了我我的会话cookie,其他cookie,客户端浏览器(正确)和其他类似的东西,但没有任何IP的内容。事实上,我什至看不到易北人的静态ip。
Request.Headers["HTTP_X_FORWARDED_FOR"]
总是空的,这是可以理解的。
请问如何从 C# 获取真正的客户端 IP?
几天前我做了类似的事情!
我不得不使用Request.ServerVariables
并寻找REMOTE_ADDR
来查找客户端 IP。
像这样:
if (Request.ServerVariables["REMOTE_ADDR"] != null)
{
string userIP = Request.ServerVariables["REMOTE_ADDR"];
}
这对我有用..
在我的测试中,在以下两种情况下,客户端 IP 地址都由弹性负载均衡器填充。
Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
Request.Headers["X-Forwarded-For"];
请注意,这些变量的格式不一定只是客户端 IP 地址。如果多次转发请求,则服务器 IP 地址将附加逗号和空格作为分隔符。
有关更多详细信息,请参阅 Amazon 的 Elastic Load Balancing 开发人员指南(搜索 X-Forwarded-For)。