Rails:获取客户端IP地址

时间:2010-12-16 21:19:21

标签: ruby-on-rails client ip-address

在Rails中,获取客户端连接服务器的IP地址的最佳方法是什么?

我找到了两种方法:

request.remote_ip
request.env['HTTP_X_REAL_IP']

5 个答案:

答案 0 :(得分:296)

我会使用简单的request.remote_ip并且它有效。你有什么理由需要另一种方法吗?

请参阅:Get real IP address in local Rails development environment 对于其他一些你可以用客户端服务器ip做的事情。

答案 1 :(得分:40)

request.remote_ip是对所有可用IP地址信息的解释,它将做出最佳猜测。如果直接访问变量,则需要负责以正确的优先顺序对它们进行测试。代理引入了许多标题,这些标题创建了具有不同名称的环境变量。

答案 2 :(得分:7)

使用命令获取客户端IP:

{{1}}

答案 3 :(得分:1)

对于任何有兴趣和使用更新的rails和Devise gem的人:Devise" trackable" option包括users表中current / last_sign_in_ip的列。

答案 4 :(得分:0)

我发现request.env['HTTP_X_FORWARDED_FOR']request.remote_ip返回127.0.0.1的情况下也非常有用