W Railsach, jaki jest najlepszy sposób uzyskania adresu IP klienta łączącego się z serwerem?
Oto dwa sposoby, które znalazłem:
request.remote_ip
request.env['HTTP_X_REAL_IP']
źródło
W Railsach, jaki jest najlepszy sposób uzyskania adresu IP klienta łączącego się z serwerem?
Oto dwa sposoby, które znalazłem:
request.remote_ip
request.env['HTTP_X_REAL_IP']
Po prostu użyłbym tego, request.remote_ip
co jest proste i działa. Czy jest jakiś powód, dla którego potrzebujesz innej metody?
Zobacz: Uzyskaj prawdziwy adres IP w lokalnym środowisku programistycznym Railsów , aby zrobić kilka innych rzeczy z IP serwera klienta.
request.remote_ip
jest interpretacją wszystkich dostępnych informacji o adresie IP i pozwoli na najlepsze przypuszczenie. Jeśli uzyskujesz dostęp do zmiennych bezpośrednio, przejmujesz odpowiedzialność za ich przetestowanie we właściwej kolejności. Serwery proxy wprowadzają szereg nagłówków, które tworzą zmienne środowiskowe o różnych nazwach.
Uzyskaj adres IP klienta za pomocą polecenia:
request.remote_ip
Okazało się również request.env['HTTP_X_FORWARDED_FOR']
bardzo przydatne w przypadkach request.remote_ip
zwrotów127.0.0.1
Dla wszystkich zainteresowanych i korzystających z nowszych railsów i opcji "śledzenia" Devise: Devise zawiera kolumnę dla current / last_sign_in_ip w tabeli użytkowników.