Mam hiszpańską stronę internetową i nie pozwalam osobom z krajów pozaeuropejskich na rejestrację i logowanie.
Jakiś czas temu zacząłem otrzymywać wiadomości od użytkowników, którzy nie mogą się zalogować. Gdy pytam o ich adres IP, mówią coś w rodzaju: 66.249.93.202. To adres IP Google. Jak dostają to w swoich telefonach komórkowych? Co muszą zrobić, aby użyć swojego prawdziwego adresu IP?
networking
ip
użytkownik1406271
źródło
źródło
Odpowiedzi:
To, co widzisz, to adres serwera proxy Google.
Użytkownicy mobilni z przeglądarką Chrome (Android lub iOS) z włączonymi funkcjami zarządzania przepustowością będą często postrzegani jako używający jednego z tych adresów jako requestera, jak opisano tutaj .
Zasadniczo dane, które podajesz, są żądane przez serwer proxy kompresji danych Google
optimized
i odsyłane do użytkownika końcowego.Nie powinni robić nic inaczej.
Możesz sprawdzić
x-forwarded-for
nagłówek, jak wyjaśniono w poprzednio połączonej dokumentacji.źródło
Prawdopodobnie używają proxy kompresji danych Google ( https://developer.chrome.com/multidevice/data-compression ).
I aby odpowiedzieć na twoje pytanie (z tej samej strony):
źródło
Możesz uzyskać adres IP użytkownika bezpośrednio, jeśli po prostu udostępniasz witrynę przez HTTPS .
Prawdopodobnie i tak powinieneś to zrobić - zwłaszcza, że wspomniałeś, że są to strony logowania i rejestracji.
Cytowanie ze strony serwera proxy kompresji danych wspomnianego w innych odpowiedziach:
źródło
Być może ci użytkownicy używają Chrome (mobilnego) z serwerem proxy kompresji danych ( https://developer.chrome.com/multidevice/data-compression )
Możesz użyć
X-Forwarded-For
nagłówka HTTP do geolokalizacji użytkownika na podstawie pierwotnego adresu IP użytkownika (patrz FAQ)źródło
X-Forwarded-For
Nagłówka można łatwo sfałszowane, więc to nie jest bezpieczne polegać na tym cel.Mam ten sam problem. Ale nie dostałem prawdziwego adresu IP
X-Forwarded-For
Mam włączoną funkcję oszczędzania danych, ale indeks X-Forwarded-For nie jest ustawiony w informacjach nagłówka. Sprawdziłem także indeks HTTP_X_REAL_IP. Jest również ustawiony z adresem IP google.W końcu znalazłem poprawne IP w
HTTP_FORWARDED
wartości indeksu jakofor=203.192.231.124
echo $_SERVER['HTTP_FORWARDED']
Więc po prostu usuń tekst
for=
z wartości, a otrzymasz IP.$ip = str_replace('for=','', $_SERVER['HTTP_FORWARDED']);
źródło