Pregunta

¿Alguien puede ayudarme a obtener la IP del cliente y también la IP del servidor usando Ruby on Rails?

¿Fue útil?

Solución 2

Gracias: karim79 y Titanous.

Escriba el código en el controlador

Para IP del cliente:

request.remote_ip

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]

Para IP del 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

Otros consejos

Desde su controlador:

request.remote_ip

Si está usando apache frente a un mestizo, remote_ip devolverá la dirección de origen de la solicitud, que en este caso será el host local porque el servidor web Apache está haciendo la solicitud, por lo que debe ponerla en su controlador :

@remote_ip = request.env["HTTP_X_FORWARDED_FOR"]

Para obtener la IP del servidor, consulte:

Obtener el nombre de host o IP en Ruby on Rails

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top