Jak Znaleźć Adres IP Odwiedzającego Witrynę?

Spisu treści:

Jak Znaleźć Adres IP Odwiedzającego Witrynę?
Jak Znaleźć Adres IP Odwiedzającego Witrynę?

Wideo: Jak Znaleźć Adres IP Odwiedzającego Witrynę?

Wideo: Jak Znaleźć Adres IP Odwiedzającego Witrynę?
Wideo: Jak znaleźć adres IP kogoś + VPN 2024, Listopad
Anonim

Najczęściej do jego identyfikacji wykorzystywany jest adres IP odwiedzającego witrynę. Ale poza tym, korzystając z adresu IP, możesz uzyskać wiele dodatkowych informacji o odwiedzającym - na przykład dowiedzieć się, jego dostawcę Internetu i lokalizację geograficzną. W praktyce skrypty PHP po stronie serwera są najczęściej używane do wyodrębniania adresów IP z nagłówków żądań wysyłanych przez przeglądarkę.

Jak znaleźć adres IP odwiedzającego witrynę?
Jak znaleźć adres IP odwiedzającego witrynę?

Czy to jest to konieczne

Podstawowa znajomość PHP

Instrukcje

Krok 1

Użyj wbudowanej funkcji PHP getenv, aby odczytać adresy IP z superglobalnej tablicy zmiennych środowiskowych. W najprostszym przypadku wystarczy odczytać zmienną o nazwie REMOTE_ADDR. Odpowiedni fragment kodu PHP może wyglądać tak: $ userIP = getenv ('REMOTE_ADDR');

Krok 2

Oprócz zmiennej REMOTE_ADDR przesłanej w żądaniu sprawdź zmienne HTTP_VIA i HTTP_X_FORWARDED_FOR. Jeśli odwiedzający korzysta z serwera proxy, to adres pośredni musi być zapisany w obu zmiennych - zarówno w HTTP_VIA, jak i REMOTE_ADDR. W takim przypadku możesz spróbować znaleźć prawdziwy adres IP odwiedzającego przez HTTP_X_FORWARDED_FOR - serwer proxy musi umieścić w nim oryginalny adres. Jednak nie zawsze tak się dzieje, a użytkownik ma możliwość wybrania „nieprzezroczystego” serwera proxy, który nie przesyła oryginalnego adresu IP odwiedzającego, który wysłał żądanie. W każdym razie powinieneś użyć jak największej liczby sposobów, aby uzyskać oryginalny adres IP w swoim kodzie, dodając kontrolę dla zmiennej

Krok 3

Połącz w jednym wierszu kodu PHP sekwencyjne sprawdzenie trzech zmiennych środowiskowych, które mogą zawierać oryginalny adres IP odwiedzającego. Można to zrobić na przykład w następujący sposób: $ userIP = getenv ('HTTP_CLIENT_IP') OR $ userIP = getenv ('HTTP_X_FORWARDED_FOR') OR $ userIP = getenv ('REMOTE_ADDR');

Krok 4

Usuń dodatkowe znaki i inne „śmieci” z wynikowej wartości adresu IP, które mogą dostać się do zmiennych środowiskowych. Można to zrobić np. za pomocą wbudowanych funkcji PHP TRIM i preg_replace: $userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));

Krok 5

Połącz cały kod w funkcję niestandardową, aby móc się do niej odwoływać zamiast powtarzać w kółko wiersze sprawdzania i czyszczenia w różnych częściach skryptów PHP. Na przykład tak: FUNCTION getUserIP () {

$ userIP = getenv ('HTTP_CLIENT_IP') LUB $ userIP = getenv ('HTTP_X_FORWARDED_FOR') OR $ userIP = getenv ('REMOTE_ADDR');

RETURN TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$1', $userIP));

}

Zalecana: