【问题标题】:How to get the remote hostname in Ruby on Rails?如何在 Ruby on Rails 中获取远程主机名?
【发布时间】:2013-07-12 20:12:06
【问题描述】:

我希望在 Ruby on Rails 应用程序中解析远程客户端的主机名。

我知道Request.remote_ip 会给我客户的 IP 地址,但我如何将其转换为他们的主机名?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2


    【解决方案1】:

    我想通了!

    这是我在 ApplicationHelper 中放入的一个方法:

    def remote_hostname
      require 'resolv'
      Resolv.getname(request.remote_ip)
    end
    

    就这么简单!

    【讨论】:

      【解决方案2】:

      如下尝试;

      require 'socket'
      host = Socket.gethostname
      

      或者你可以简单地做;

      `hostname`.strip # Get the hostname from the shell and removing trailing \n        
      

      【讨论】:

      • 我认为他是在 remote 主机名之后,而不是本地主机名。
      猜你喜欢
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 2013-02-20
      • 2011-09-10
      • 2016-10-30
      • 2012-09-03
      相关资源
      最近更新 更多