在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,它应该按照你的预期工作。