【问题标题】:Get Server public IP in Ruby and Rails在 Ruby 和 Rails 中获取服务器公共 IP
【发布时间】:2016-03-18 07:30:19
【问题描述】:

我在 ROR 中创建了一个页面,该页面将从 IFRAME 中的某个网站加载。该页面将仅显示给一些列入白名单的服务器。

我想获取服务器的公共 IP(从 IFRAME 请求),以便我可以将内容返回到一些列入白名单的 IP。

我尝试过this SO answer,但它提供服务器的私有 IP 而不是公共 IP。

还检查了request 变量,但它具有客户端 IP(访问该站点的计算机的 IP)而不是服务器的公共 IP。

使用Ruby v2.1.5.Rails v3.2

【问题讨论】:

    标签: ruby-on-rails ruby ip


    【解决方案1】:

    你不能那样做。请求 IFrame 内容的不是服务器,而是客户端。

    【讨论】:

      【解决方案2】:

      您可以使用一种 hacky 方式来做到这一点。您可以随响应显式发送服务器 IP。所以当你加载页面时,你可以缓存IP,然后将它与iframe页面的请求一起发送。

      例如,您可以将 iframe 的请求 url 生成为

      //www.yourdomain.com/your/path?request_ip=<IP that you cached earlier>
      

      但它只是一种 hacky 方式,它只有在你可以控制 IFrame 的请求 URL 时才有效。

      【讨论】:

      • 这假定他可以控制包含 iframe 的页面。我想他没有。
      • 他必须以某种方式或其他方式控制 iframe 请求 URL,否则他就不走运了。
      • 我只能控制 IFRAME 页面,这是我的 ruby​​ 代码,而不是包含 IFRAME 的页面。
      • 我猜,在参数中发送 IP 也是一个巨大的安全漏洞。
      • @AtulKhanduri 是的。但是由于请求是从客户端生成的,因此您可以显式发送 IP,也可以使用某种编码。您可以签出HashID gem 来编码和解码 ip。
      猜你喜欢
      • 2017-01-25
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多