【发布时间】:2011-05-26 19:32:15
【问题描述】:
在 Rails 中,获取连接到服务器的客户端 IP 地址的最佳方法是什么?
我找到了两种方法:
request.remote_ip
request.env['HTTP_X_REAL_IP']
【问题讨论】:
标签: ruby-on-rails client ip-address
在 Rails 中,获取连接到服务器的客户端 IP 地址的最佳方法是什么?
我找到了两种方法:
request.remote_ip
request.env['HTTP_X_REAL_IP']
【问题讨论】:
标签: ruby-on-rails client ip-address
我会使用request.remote_ip,这很简单,而且很有效。有什么理由需要其他方法吗?
见:Get real IP address in local Rails development environment 对于您可以使用客户端服务器 IP 执行的其他一些操作。
【讨论】:
request.remote_ip 是对所有可用 IP 地址信息的解释,它将做出最佳猜测。如果您直接访问变量,您将承担以正确的优先顺序测试它们的责任。代理引入了许多创建具有不同名称的环境变量的标头。
【讨论】:
使用命令获取客户端ip:
request.remote_ip
【讨论】:
我发现request.env['HTTP_X_FORWARDED_FOR'] 在request.remote_ip 返回127.0.0.1 的情况下也非常有用
【讨论】:
对于任何有兴趣并使用较新的 Rails 和 Devise gem 的人:Devise 的“可跟踪”选项在 users 表中包含一个 current/last_sign_in_ip 列。
【讨论】: