Rails: Client-IP-Adresse abrufen

172

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

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

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

Antworten:

44

request.remote_ipist eine Interpretation aller verfügbaren IP-Adressinformationen und wird eine Vermutung anstellen. Wenn Sie direkt auf die Variablen zugreifen, übernehmen Sie die Verantwortung dafür, sie in der richtigen Rangfolge zu testen. Proxies führen eine Reihe von Headern ein, die Umgebungsvariablen mit unterschiedlichen Namen erstellen.

Tadman
quelle
7

Holen Sie sich die Client-IP mit dem folgenden Befehl:

request.remote_ip
puneet18
quelle
2

Ich fand es auch request.env['HTTP_X_FORWARDED_FOR']sehr nützlich, wenn ich request.remote_ipzurückkehre127.0.0.1

alikk
quelle
0

Für alle Interessierten, die eine neuere Schiene und das Devise-Juwel verwenden: Die Option "Trackable" von Devise enthält eine Spalte für current / last_sign_in_ip in der Benutzertabelle.

NorseGaud
quelle