如何使用Rails获取客户端IP和服务器IP(How to get client IP and Se

2019-06-27 19:09发布

任何人都可以请帮助如何使用Ruby on Rails来获得客户端IP,也服务器IP?

Answer 1:

从你的控制器:

request.remote_ip

如果你是在杂种前使用Apache,然后remote_ip将返回的要求,在这种情况下将是本地主机,因为Apache Web服务器发出请求的源地址,这样反而把这个在您的控制器:

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]

要获得服务器IP见:

获得Ruby on Rails中的主机名或IP



Answer 2:

感谢:karim79和亚钛。

写控制器代码

对于客户端IP:

request.remote_ip

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]

对于服务器IP:

require 'socket'

def local_ip
  orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true  # turn off reverse DNS resolution temporarily

  UDPSocket.open do |s|
    s.connect '64.233.187.99', 1
    s.addr.last
  end
ensure
  Socket.do_not_reverse_lookup = orig
end


文章来源: How to get client IP and Server IP using Rails