Rails: obtenir l'adresse IP du Client

dans les Rails, Quelle est la meilleure façon d'obtenir l'adresse ip du client se connectant au serveur?

voici deux façons que j'ai trouvées:

request.remote_ip
request.env['HTTP_X_REAL_IP']
151
demandé sur bryanbraun 2010-12-17 00:19:21

5 réponses

j'utiliserais simplement le request.remote_ip c'est simple et ça marche. Une raison quelconque vous avez besoin d'une autre méthode?

Voir: Obtenir l'adresse IP réelle dans les locaux Rails environnement de développement pour d'autres choses que vous pouvez faire avec ip client server.

276
répondu loosecannon 2017-05-23 12:18:01

request.remote_ip est une interprétation de toutes les informations D'adresse IP disponibles et il fera une meilleure estimation. Si vous accédez directement aux variables, vous assumez la responsabilité de les tester dans l'ordre de priorité correct. Les mandataires introduisent un certain nombre d'en-têtes qui créent des variables d'environnement avec des noms différents.

37
répondu tadman 2013-06-18 18:36:06

Obtenir l'adresse ip du client à l'aide de la commande:

request.remote_ip
5
répondu puneet18 2017-01-11 06:51:56

pour toute personne intéressée et utilisant des rails plus récents et L'option" trackable " de Devise de Devise de Devise comprend une colonne pour current/last_sign_in_ip dans la table users.

1
répondu Nathan Pierce 2018-04-08 00:07:12

j'ai trouvé request.env['HTTP_X_FORWARDED_FOR'] très utile aussi dans les cas où request.remote_ip retourne 127.0.0.1

0
répondu alikk 2018-09-01 18:33:56