Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Detekcja proxy
Pozycjonowanie i Optymalizacja > Projektowanie stron > PHP i MySQL
milkus
Witam

Potrzebuję sobie zrobić detekcję proxy i mam taką możliwość, gdyż z niektórymi moimi stronami użytkownicy łączą się właśnie w taki sposób. O ile pobranie adresu IP nie stanowi problemu, to niestety ale nie mam pojęcia jak wykryć port proxy.

Na razie mam coś takiego :

KOD
if ($user_ip!==$_SERVER['REMOTE_ADDR'])
    {
      $szukproxy=fopen("serwery-proxy.txt","a+");
        $dozapisu=$_SERVER['REMOTE_ADDR'].":".$_SERVER['SERVER_PORT'];
        fwrite($szukproxy,$dozapisu."\r\n");
        fclose($szukproxy);
    }


gdzie :
$user_ip - prawdziwy adres użytkownika (za proxy)

Problem stanowi $_SERVER['SERVER_PORT'], gdyż za każdym razem będzie to port 80 (to chyba jest oczywiste). Jednak przy sprawdzeniu aktywności serwerów, tylko część znajdzie mi jako aktywne, ponieważ pozostałe wymagają innego portu niż 80, by połączyć się z proxy.

Pozostaje więc pytanie, czy jakaś funkcja PHP pozwala na pobranie (znalezienie) tego portu, czy też będę musiał dla każdego IP sprawdzać najczęściej występujące porty ?
Mion
Zainteresuj się zmiennymi:
HTTP_X_FORWARDED_FOR
HTTP_PROXY_CONNECTION
..... http://www.w3code.net/php-curl-proxy-checker/

lub http://www.phpclasses.org/browse/file/25561.html
milkus
Dzięki Mion. Port pobieram ze zmiennej $_SERVER['HTTP_VIA'], z wyjątkiem 8080 którego nie wykrywa. Ale w tym przypadku można ten port przypisać zmiennej jako wartość domyślną.
paszczur
Jeśli ktos wchodzi przez anonimowe proxy to nie odczytasz jego IP.
milkus
CYTAT(paszczur @ 5.02.10 - 16:30) *
Jeśli ktos wchodzi przez anonimowe proxy to nie odczytasz jego IP.


Zdaję sobie z tego sprawę, jednak to co polecił mi Mion, w zupełności się sprawdza.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2012 Invision Power Services, Inc.