在Rails中获取实际的远程IP?

我正在开发rails(2.3.8)应用程序。 我需要存储实际客户端的远程IP地址。

request.remote_ip仅返回127.0.0.1

但我需要存储实际的远程IP,如93.43.56.77 。 有ruby可供选择吗? 或者怎么做到的?

试试这个:

 request.env['REMOTE_ADDR'] 

如果您的请求来自您的开发机器并且开发机器是您的服务器所在,那么您可能会得到127.0.0.1 。 但是如果请求来自另一台机器,那么这将是远程机器的IP。 但是,在各种条件下,这可能不是机器的真正IP(代理机器,使用tor或其他工具隐藏它等)。

您的计算机本质上有两个网络接口。

  • ’93 .43.56.77’,适用于通过无线或有线连接到网络的网络适配器。
  • ‘127.0.0.1’是连接到自身时使用的虚拟适配器。

除非连接在该连接上运行,否则您不会让应用程序显示’93 .43.56.77’,这意味着它需要位于不同的计算机上。

如果你如此关注它,你可以轻松地将它推到Heroku,它应该按照你的预期工作。