任何人都可以请帮助如何使用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