【问题标题】:Rails: Get Client IP addressRails:获取客户端 IP 地址
【发布时间】:2011-05-26 19:32:15
【问题描述】:

在 Rails 中,获取连接到服务器的客户端 IP 地址的最佳方法是什么?

我找到了两种方法:

request.remote_ip
request.env['HTTP_X_REAL_IP']

【问题讨论】:

    标签: ruby-on-rails client ip-address


    【解决方案1】:

    我会使用request.remote_ip,这很简单,而且很有效。有什么理由需要其他方法吗?

    见:Get real IP address in local Rails development environment 对于您可以使用客户端服务器 IP 执行的其他一些操作。

    【讨论】:

      【解决方案2】:

      request.remote_ip 是对所有可用 IP 地址信息的解释,它将做出最佳猜测。如果您直接访问变量,您将承担以正确的优先顺序测试它们的责任。代理引入了许多创建具有不同名称的环境变量的标头。

      【讨论】:

        【解决方案3】:

        使用命令获取客户端ip:

        request.remote_ip
        

        【讨论】:

          【解决方案4】:

          我发现request.env['HTTP_X_FORWARDED_FOR']request.remote_ip 返回127.0.0.1 的情况下也非常有用

          【讨论】:

            【解决方案5】:

            对于任何有兴趣并使用较新的 Rails 和 Devise gem 的人:Devise 的“可跟踪”选项在 users 表中包含一个 current/last_sign_in_ip 列。

            【讨论】:

              猜你喜欢
              • 2019-01-14
              • 2013-11-09
              • 2013-07-07
              • 2019-11-13
              • 1970-01-01
              • 2011-01-08
              • 2014-12-29
              • 2012-03-14
              • 2015-03-01
              相关资源
              最近更新 更多