【问题标题】:Get Actual Remote IP in Rails?在 Rails 中获取实际的远程 IP?
【发布时间】:2011-12-26 19:15:37
【问题描述】:

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

request.remote_ip 仅返回 127.0.0.1

但我需要存储实际的远程 IP,例如 93.43.56.77。有红宝石吗?或者如何获得?

【问题讨论】:

标签: ruby-on-rails ip-address


【解决方案1】:

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

  • '93.43.56.77' 用于通过无线或有线连接到网络的网络适配器。
  • “127.0.0.1”是一个虚拟适配器,在连接到自身时使用。

除非连接在该连接上运行,否则应用程序不会显示“93.43.56.77”,这意味着它需要在另一台计算机上。

如果您对此非常担心,您可以轻松地将其推送到 Heroku,它应该可以按您的预期工作。

【讨论】:

    【解决方案2】:

    试试这个:

    request.env['REMOTE_ADDR']
    

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

    【讨论】:

    • request.env['REMOTE_ADDR'] 也返回127.0.0.1
    • @Dhinesh Kumar 它运行良好。请阅读我的cmets。我在生产应用程序中使用它,它运行良好。
    猜你喜欢
    • 2014-01-09
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    相关资源
    最近更新 更多