Кто-нибудь может помочь, как получить IP-адрес клиента, а также IP-адрес сервера с помощью Ruby on Rails?
Как получить IP-адрес клиента и IP-адрес сервера с помощью Rails
Ответ 1
Thanks: karim79 and Titanous
Введите код в контроллере
Для 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
Ответ 2
С вашего контроллера:
request.remote_ip
Если вы используете apache перед mongrel, то remote_ip вернет исходный адрес запроса, который в этом случае будет локальным хостом, потому что веб-сервер Apache делает запрос, поэтому вместо этого поставьте его в свой контроллер
@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]
Чтобы получить IP-адрес сервера, выполните следующие действия: