我的网站中有一行关键代码可以在我们的开发环境中运行,但不能在生产环境中运行。好吧,我说它在开发中起作用,但事实是它给了::1
,这是 IPv6 环回地址。
无论如何,我想要做的是捕获访问该站点的用户的 IP 地址。因此,我使用Request.UserHostAddress
要做到这一点。在开发过程中,正如我所说,它给了我环回地址,这是正确的,因为我是从我的机器上运行该站点的。在现场,它做了一些完全不同的事情。它始终返回负载均衡器的地址。
我想了解的是这个。我是否错误地使用 Request.UserHostAddress 来捕获用户的 IP 地址,或者我们的网络设置有问题或其他问题?
Thanks,
Sachin
在您自己的应用程序中,如果没有采取任何其他措施来帮助您,您就会陷入困境。这就是您可以获得的尽可能多的信息。
如果幸运的话,您的负载均衡器已配置为添加一个或多个额外标头,其中包含有关原始请求的信息。
一种常见的解决方案是X-Forwarded-For http://en.wikipedia.org/wiki/X-Forwarded-For header:
X-Forwarded-For (XFF) HTTP 标头字段是用于识别通过 HTTP 代理或负载均衡器连接到 Web 服务器的客户端的原始 IP 地址的事实上的标准。
然后您可以通过Request.Headers
财产。
但是,我们无法帮助您发现此(或另一个)标头是否可用 - 您需要与为您的组织配置负载均衡器的人员交谈。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)