it-swarm.com.de

Rails: Client-IP-Adresse abrufen

Wie kann man in Rails die IP-Adresse des Clients, der eine Verbindung zum Server herstellt, am besten abrufen?

Hier sind zwei Möglichkeiten, die ich gefunden habe:

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

Ich würde einfach den request.remote_ip verwenden, der einfach ist und funktioniert. Warum brauchen Sie eine andere Methode?

Siehe: Echte IP-Adresse in der lokalen Rails-Entwicklungsumgebung erhalten Weitere Informationen zu Client-Server-IPs.

287
loosecannon

request.remote_ip ist eine Interpretation aller verfügbaren IP-Adressinformationen und wird eine Vermutung liefern. Wenn Sie direkt auf die Variablen zugreifen, übernehmen Sie die Verantwortung für den Test in der richtigen Reihenfolge. Proxies führen eine Reihe von Headern ein, die Umgebungsvariablen mit unterschiedlichen Namen erstellen.

39
tadman

Rufen Sie die Client-IP mit dem Befehl ab:

request.remote_ip
6
puneet18

Für alle, die Interesse an einem neueren Rails und dem Devise-Juwel haben: Die Option "trackable" von Devise enthält eine Spalte für current/last_sign_in_ip in der Benutzertabelle.

1
Nathan Pierce

Ich fand request.env['HTTP_X_FORWARDED_FOR'] auch sehr nützlich, wenn request.remote_ip127.0.0.1 zurückgibt.

0
alikk