Jay*_*Key 4 ruby ruby-on-rails
我正在向现有的 RoR 应用程序添加一些更改,并发现request.env['HTTP_X_FORWARDED_FOR']返回的nil. 我将其更改为request.remote_ip并获得了客户端的正确 IP 地址。
为什么request.remote_ip返回时request.env['HTTP_X_FORWARDED_FOR']返回一个IP nil?它们之间有什么区别?我怎样才能request.env['HTTP_X_FORWARDED_FOR']工作,我应该使用哪一个(最佳实践)?
通常,您应该使用request.remote_ip. 这是 Rails 引入的一种方法,它尝试使用各种方法收集连接的实际远程 IP,包括request.env['HTTP_X_FORWARDED_FOR']在适当的情况下进行评估。
最后request.remote_ip在ActionDispatch::RemoteIp 中间件中计算返回的 IP 。这比尝试自己收集 IP 更通用,因为它考虑了可以设置各种 HTTP 标头的代理阶段。
| 归档时间: |
|
| 查看次数: |
3556 次 |
| 最近记录: |