Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] $_SERVER, proxy
kaczors
post
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)

Proxy HTTP_VIA Variable: (none)

Proxy HTTP_PROXY_CONNECTION: (none)

Gdzie w moim skrypcie te zmienne mają pewne wartości(dwie pierwsze)

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
)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wNogachSpisz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Mogę Cię nakierować, ściagnij fajny sniffer http://www.nirsoft.net/utils/smsniff.zip,rzuć okiem jak wyglądają nagłowki rozgrywając dwa scenariusze:
 - twoj skrypt laczy sie z serwerem proxy
 - twoj skrypt jest serwerem i laczysz sie z nim przez przegladarke
Zobacz jak wyglada tablica $_SERVER['HTTP_*'] w obu przypadkach.

Nie powinno mieć znaczenia ze polaczenie będzie w ramach localhosta, sprawdź.

Buforowanie o którym mówisz to nic innego jak cache, opisany w wielu dokumentacjach rówież w języku polskim (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
cachowanie występuje w różnych wersjach, takich co łączą się przy każdym wywołaniu z serwerem zeby sprawdzic czy cos sie zminilo
oraz takie które tego nie robily opierając się czasie życia cachu,
wszystko zalezy wlasnie od naglowka HTTP.

Gdybym to ja robił skrypt określający szybkość serwera proxy, nie zerkałbym w superglobalne $_SERVER.
Zamiast tego lepiej połączyć się z docelowym proxy
i ręcznie stworzyć nagłowek HTTP a następnie sparsować odpowiedź serwera proxy ;p
( /* Pod uwage w ostatecznym wyniku wiąć długość nagłowka HTTP */ )
sprawdzić jak proxy zadziała przy różnych scenariuszach, z cachem, bez cachu, z duzym plikem, z malym plikiem.
Dokumentacje HTTP masz chociażby na wikipedii, to na prawde nie jest trudne ;p
Jeśli masz problem z napisaniem skryptu który odpowiednie sparsuje nagłowek HTTP, zapraszam na gielde (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , (to doslownie 2 wyrażenie ragularne na krzyż)
Chętnie skrobne coś takiego w ramach rozrywki za równowartość 1 piwa marki Lech Premium (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
 
Mam nadzieje że wraziłem się nie bardzo nie jasno.


Pytaj dalej (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 06:02