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']
quelle
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']
Ich würde nur das verwenden request.remote_ip
, das einfach ist und es funktioniert. Gibt es einen Grund, warum Sie eine andere Methode benötigen?
Siehe: Erhalten Sie eine echte IP-Adresse in der lokalen Rails-Entwicklungsumgebung für einige andere Dinge, die Sie mit Client-Server-IPs tun können.
request.remote_ip
ist 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.
Holen Sie sich die Client-IP mit dem folgenden Befehl:
request.remote_ip
Ich fand es auch request.env['HTTP_X_FORWARDED_FOR']
sehr nützlich, wenn ich request.remote_ip
zurückkehre127.0.0.1
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.