gpt4 book ai didi

ruby-on-rails - Rails - request.env ['HTTP_X_FORWARDED_FOR' ] 和 request.remote_ip 之间的区别

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:02 25 4
gpt4 key购买 nike

我正在对现有 RoR 应用程序添加一些更改,发现 request.env['HTTP_X_FORWARDED_FOR'] 返回了 nil。我将其更改为 request.remote_ip 并获得了客户端的正确 IP 地址。

为什么 request.remote_iprequest.env['HTTP_X_FORWARDED_FOR'] 返回 nil 时返回一个 IP?它们之间有什么区别?我怎样才能使 request.env['HTTP_X_FORWARDED_FOR'] 工作,我应该使用哪一个(最佳实践)?

最佳答案

通常,您应该使用request.remote_ip。这是 Rails 引入的一种方法,它尝试使用各种方式收集连接的实际远程 IP,包括在适当的情况下评估 request.env['HTTP_X_FORWARDED_FOR']

最后,request.remote_ip返回的IP是在ActionDispatch::RemoteIp middleware中计算出来的.这比尝试自己收集 IP 更通用,因为它考虑了可以设置各种 HTTP header 的代理阶段。

关于ruby-on-rails - Rails - request.env ['HTTP_X_FORWARDED_FOR' ] 和 request.remote_ip 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25036211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com