muszę przechowywać adres IP gości do naszej bazy danych i oto sposób staram się zrobić:Szyny - jak uzyskać adres IP odwiedzającego?
@ip = request.remote_ip
@ip = request.env['REMOTE_ADDR']
Ale w obu przypadkach zmienna @ip
przechowywana wartość 127.0.0.1, nawet gdy Wdrażam aplikację do instancji Amazon EC2.
Po sprawdzeniu http://www.whatismyip.com/ pokazuje ono moje IP jako 109.175.XXX.X.
W związku z tym dlaczego zmienna ruby zawsze wyświetla adres 127.0.0.1? Jak uzyskać prawdziwy adres IP?
EDIT: Oto wyjście następuje:
request.env['HTTP_X_FORWARDED_FOR'] =>
request.remote_ip => 127.0.0.1
request.env['REMOTE_ADDR'] => 127.0.0.1
request.ip => 127.0.0.1
Myślałem, że problem jest tylko z mojej strony, ale wysłałem linki do 3 z moich znajomych i wszyscy z nich zobaczyć ten sam adres IP, tylko 127.0.0.1.
Rozwiązuję ten problem przez cały dzień i wciąż nie osiągam sukcesu.
Dziękuję
może twoja aplikacja znajduje się za [odwrotnym proxy] (http://en.wikipedia.org/wiki/Reverse_proxy)? –
Jak "odwiedzający" odwiedza twój serwer? Kiedy używasz instancji EC2, w jaki sposób wysyłasz żądanie do serwera? –
Po prostu otworzyłem moją stronę w przeglądarce i ponownie załadowałem stronę, ponieważ chciałem zobaczyć zmieniony adres IP - ale nadal jest taki sam jak na localhost - 127.0.0.1 – user984621