Rails: obtenir l'adresse IP du client

172

Dans Rails, quel est le meilleur moyen 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']
ma11hew28
la source

Réponses:

44

request.remote_ipest 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 proxies introduisent un certain nombre d'en-têtes qui créent des variables d'environnement avec des noms différents.

tadman
la source
7

Obtenez l'IP du client à l'aide de la commande:

request.remote_ip
puneet18
la source
2

J'ai trouvé request.env['HTTP_X_FORWARDED_FOR']très utile aussi en cas de request.remote_ipretour127.0.0.1

alikk
la source
0

Pour toute personne intéressée et utilisant des rails plus récents et la gemme Devise: l'option "trackable" de Devise inclut une colonne pour current / last_sign_in_ip dans la table des utilisateurs.

NorseGaud
la source