Pergunta

alguém pode ajudar por favor como obter o cliente IP e IP também servidor usando Ruby on Rails?

Foi útil?

Solução 2

Graças:. Karim79 e Titanous

Escreva o código no controlador

Para IP do cliente:

request.remote_ip

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]

Para IP do servidor:

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

Outras dicas

A partir do seu controlador:

request.remote_ip

Se você estiver usando apache na frente de um vira-lata, então remote_ip irá retornar o endereço de origem do pedido, que neste caso será host local porque o servidor web Apache está fazendo a solicitação, por isso, em vez colocar isso em seu controlador :

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]

Para obter o servidor IP ver:

Obtendo o nome do host ou IP em Ruby on Rails

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top