【问题标题】:Ruby - Get client IP Address from inside a gemRuby - 从 gem 中获取客户端 IP 地址
【发布时间】:2010-08-04 03:12:39
【问题描述】:

我正在尝试创建一个 gem,我想在其中添加一个功能,在使用它时获取客户端 IP 地址。基本上它就像 rails ActionController request.remote_ip,但在 gem 中我不想依赖/依赖 rails。

有没有什么方法可以纯粹使用 Ruby 来实现这样的功能?

我找到了this,但是当部署到生产服务器时,它只获得服务器ip地址而不是客户端地址。

任何帮助将不胜感激

非常感谢

【问题讨论】:

  • 我自己也遇到了同样的问题,并一直跟踪到机架级别。我从来没有找到任何访问当前请求对象的方法。似乎它与 ApplicationController 相关联,似乎没有任何方法可以从 gem/plugin 范围访问它。似乎唯一的解决方案是让 IP 从控制器传递给您的 gem。
  • aNoble 是正确的,Rails 应用程序中包含的任意 gem 没有任何路径“向上”到具有客户端请求上下文的对象。如果您的 gem 需要此数据来实现其预期目的,则必须更改您的 API 以要求将信息“向下”传递到您的 gem。这可以是显式的(作为 IP 地址/字符串)或隐式的(作为对可以从中获取请求数据的对象的引用)

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


【解决方案1】:

这可能是因为 Ruby :) 如果您正在开发一个 Web 应用程序,您应该使用 rack !它非常酷且简单,否则您将不得不处理“net”模块。

【讨论】:

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