在Rails中,获取客户端连接服务器的IP地址的最佳方法是什么?
我找到了两种方法:
request.remote_ip
request.env['HTTP_X_REAL_IP']
答案 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
的情况下也非常有用