![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 11.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Jestem w trakcie próby stworzenia weryfikatora serwerów proxy, nie opierającego się na bazie znanych adresów ip serwerów proxy. Jak wiadomo należy bacznie prześledzić zmienne środowiskowe, które powinny nas doprowadzić do najbardziej prawdopodobnego wyniku. Wzoruję się na takich stronach: http://www.jockersoft.com/english/ipaddress.php oraz http://www.proxyserverprivacy.com/adv-free...-detector.shtml Napotykam takie oto problemy: Na tych stronach odczytują: Connection: keep-alive Keep-Alive: 300 Pierwsza z informacji teoretycznie powinna się znaleźć w zmiennej 'HTTP_CONNECTION', lecz w moim skrypcie nie istnieje taka zmienna. Czy widoczność tej zmiennej zależy od serwera na którym stoi skrypt?? Także po wejściu na te strony mam: Proxy HTTP_X_FORWARDED Variable: (none) Gdzie w moim skrypcie te zmienne mają pewne wartości(dwie pierwsze)Proxy HTTP_VIA Variable: (none) Proxy HTTP_PROXY_CONNECTION: (none) print_r( $_SERVER ); Wynik działania powyższego kodu na moim serwerze Array ( [PATH] => /usr/local/bin:/usr/bin:/bin [UNIQUE_ID] => SggzBldi3pgAAHLJkHsAAAA0 [REAL_HOST] => 193.239.80.21 [HTTP_HOST] => engineer.ovh.org [HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 [HTTP_ACCEPT_LANGUAGE] => pl,en-us;q=0.7,en;q=0.3 [HTTP_ACCEPT_ENCODING] => gzip,deflate [HTTP_ACCEPT_CHARSET] => ISO-8859-2,utf-8;q=0.7,*;q=0.7 [HTTP_COOKIE] => SESS47f8c6f823598c9dba1c59fb62aeb1bb=f71f56b5e2896bb7eec0132c8f3457ef [HTTP_CACHE_CONTROL] => max-age=0 [HTTP_MAX_FORWARDS] => 10 [HTTP_VIA] => 1.1 127.0.0.1 [HTTP_X_FORWARDED_FOR] => 193.239.80.21 [HTTP_X_FORWARDED_HOST] => engineer.ovh.org [HTTP_X_FORWARDED_SERVER] => 127.0.0.1 [SERVER_SIGNATURE] => [SERVER_SOFTWARE] => Apache [SERVER_NAME] => engineer.ovh.org [SERVER_ADDR] => 87.98.222.152 [SERVER_PORT] => 80 [REMOTE_ADDR] => 193.239.80.21 [DOCUMENT_ROOT] => /home/e/n/g/engineer/www [SERVER_ADMIN] => postmaster@engineer.ovh.org [SCRIPT_FILENAME] => /home/e/n/g/engineer/www/index.php [REMOTE_PORT] => 55217 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => / [SCRIPT_NAME] => /index.php [UID] => 105826 [PHP_SELF] => /index.php [REQUEST_TIME] => 1242051334 [argv] => Array ( [0] => index.php ) [argc] => 1 ) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 11.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wszystko ładnie pięknie, ale niezupełnie o takie działanie skryptu mi chodzi.
Moim celem jest napisanie czegoś co rozpozna czy ktoś kto się łączy z naszą stroną używa proxy bądź nie, a jeżeli używa to w jakiego jest ono rodzaju. Twoje rozwiązanie służy do testowania konkretnego proxy, możliwe że nie wyraziłem się jasno , ale nie o takie działanie mi chodzi. Dlatego więc męczę te zmienne serwera ;] I dalej nie wiem jak pozyskać hosta jego typ połączenia (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Myślę, że ze sparsowaniem nagłówka bym sobie poradził, więc giełda nie jest dla mnie rozwiązaniem, tam się niczego nie nauczę (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Wróćmy do problemów W pierwszym poście wylistowałem wartości zmiennych $SERVER i tak np mamy: HTTP_X_FORWARDED FOR: 193.239.80.21 (czyli moje ip) a po wejściu na inną przykładową stronę sprawdzającą te zmienne jest (http://www.thisisarecording.com/proxy_check/): HTTP_X_FORWARDED FOR: (none) Skąd ta różnica, przecież te zmienne zależą od hosta i powinny być w obu przypadkach te same!? Generalnie mam zamiar zbadać nagłówki (co jest naiwne) + zbadać typ połączenia + baza whois (zauważyłem że dla proxy nie podaje większości informacji tylko nazwa hosta). Powiązując to wszystko ze sobą mam nadzieję że z dosyć wysokim prawdopodobieństwem odgadnę czy ktoś się łączy przez proxy czy nie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 05:43 |