web-dev-qa-db-fra.com

Rails: Obtenir l'adresse IP du client

Dans Rails, quel est le meilleur moyen d’obtenir l’adresse IP du client se connectant au serveur?

Voici deux manières que j'ai trouvées:

request.remote_ip
request.env['HTTP_X_REAL_IP']
157
ma11hew28

Je voudrais simplement utiliser le request.remote_ip qui est simple et qui fonctionne. Une raison pour laquelle vous avez besoin d'une autre méthode?

Voir: Obtenir une adresse IP réelle dans l’environnement de développement Rails local Pour certaines autres choses que vous pouvez faire avec les adresses IP du serveur client.

287
loosecannon

request.remote_ip est une interprétation de toutes les informations d'adresse IP disponibles et vous permettra de deviner. Si vous accédez directement aux variables, vous êtes responsable de les tester dans le bon ordre de priorité. Les mandataires introduisent un certain nombre d’en-têtes qui créent des variables d’environnement avec des noms différents.

39
tadman

Obtenir l'adresse IP du client en utilisant la commande:

request.remote_ip
6
puneet18

Pour ceux qui sont intéressés et qui utilisent un nouveau Rails et le joyau de Devise: l'option "traçable" de Devise inclut une colonne pour current/last_sign_in_ip dans la table users.

1
Nathan Pierce

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

0
alikk