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

Jak Znaleźć Adres IP Odwiedzającego Witrynę?
Jak Znaleźć Adres IP Odwiedzającego Witrynę?
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: