En Rails, ¿cuál es la mejor manera de obtener la dirección IP del cliente que se conecta al servidor?
Aquí hay dos formas que he encontrado:
request.remote_ip
request.env['HTTP_X_REAL_IP']
fuente
En Rails, ¿cuál es la mejor manera de obtener la dirección IP del cliente que se conecta al servidor?
Aquí hay dos formas que he encontrado:
request.remote_ip
request.env['HTTP_X_REAL_IP']
Simplemente usaría el request.remote_ip
que es simple y funciona. ¿Alguna razón por la que necesitas otro método?
Consulte: Obtenga una dirección IP real en el entorno de desarrollo de Rails local para conocer otras cosas que puede hacer con las IP del servidor cliente.
request.remote_ip
es una interpretación de toda la información de dirección IP disponible y hará una mejor suposición. Si accede a las variables directamente, asume la responsabilidad de probarlas en el orden de precedencia correcto. Los proxies introducen una serie de encabezados que crean variables de entorno con diferentes nombres.
Obtenga la ip del cliente usando el comando:
request.remote_ip
También me pareció request.env['HTTP_X_FORWARDED_FOR']
muy útil en los casos en que request.remote_ip
regresa127.0.0.1
Para cualquier persona interesada y que use un riel más nuevo y la gema Devise: la opción "rastreable" de Devise incluye una columna para current / last_sign_in_ip en la tabla de usuarios.