【发布时间】:2011-12-26 19:15:37
【问题描述】:
我正在开发 rails(2.3.8) 应用程序。我需要存储实际客户端的远程 IP 地址。
request.remote_ip 仅返回 127.0.0.1
但我需要存储实际的远程 IP,例如 93.43.56.77。有红宝石吗?或者如何获得?
【问题讨论】:
-
IP address in rails的可能重复
我正在开发 rails(2.3.8) 应用程序。我需要存储实际客户端的远程 IP 地址。
request.remote_ip 仅返回 127.0.0.1
但我需要存储实际的远程 IP,例如 93.43.56.77。有红宝石吗?或者如何获得?
【问题讨论】:
您的计算机基本上有两个网络接口。
除非连接在该连接上运行,否则应用程序不会显示“93.43.56.77”,这意味着它需要在另一台计算机上。
如果您对此非常担心,您可以轻松地将其推送到 Heroku,它应该可以按您的预期工作。
【讨论】:
试试这个:
request.env['REMOTE_ADDR']
如果您的请求来自您的开发机器并且开发机器是您的服务器所在的位置,那么您可能会收到127.0.0.1。但如果请求来自另一台机器,这将是远程机器的 IP。但是,在各种情况下,这可能不是机器的真实 IP(代理后的机器,使用 tor 或其他工具隐藏它等)。
【讨论】:
request.env['REMOTE_ADDR'] 也返回127.0.0.1