[PHP] Detekcja proxy oraz jego typu

0

Witam

Chciałbym wiedzieć czy w PHP istnieje możliwość sprawdzenia czy konkretny IP jest serwerem proxy, a jeśli tak to jaki jest jego typ (transparent, anonymouse itd.).

Prowadzę małą stronkę z listą serwerów proxy, które wciąż są zastępowane przez strony z linkami reklamowymi czy po prostu znikają. Chciałbym mieć możliwość ich przefiltrowania.

Sporo się naszukałem, a wiem tyle co przedtem czyli niemal nic ;) Prosiłbym o podzielenie się Waszymi poradami.

0

Tobie chodzi o proxy - czyli IP:Port, czy o web proxy (skoro mówisz, że "są zastępowane przez strony z linkami reklamowymi").

Przypadek IP:Port:
Przygotuj skrypt pobierający prawdziwy IP (tj. starający się o to).
Potem przy uzyciu np tego (nie analizowane i nie testowane, wynik z "fopen via proxy" w google)
http://www.phpbuilder.com/snippet/download.php?type=snippet&id=1672
pobieraj adres do Twojego skryptu i sprawdzaj czy to co wyświetla skrypt jest równe temu przez co się łączysz - jak tak to masz transparent, jak nie, to masz anona.

A jeżeli chodzi o stronki webproxy - to już musisz analizować każdą z nich z osobna raczej, tj sprawdzać jaki powinien być url linka, bądź jak trzeba to przesyłać jakieś dane POSTem (tu już kłania się curl) i podobnie jak w pierwszej metodzie sprawdzać co zwraca skrypt, a jaki jest adres IP adresu danego webproxy.

0

Dzięki, bardzo mi pomogłeś. A czy dałoby się jeszcze wyciągnąć typ proxy? High Anonymouse, Transparent etc. ?

0

przecież opisałem powyżej -.-

0

Przepraszam, pomyliłem, chodziło mi o obsługę szyfrowania (z SSL czy bez). Da sie to jakoś wykryć?

0

tylko czy ty pytasz o obsługę SSL na stronie docelowej (podobno niektóre nie otworzą takowej), czy szyfrowanie wszystkiego co leci przez proxy? zakładam, że drugie, ale mogę się mylić..

szczerze to nie widziałem webproxy po ssl (ok, pogooglowalem i faktycznie takie są, nawet sporo)..
jak rozpoznać szyfrowanie po IP:port to za bardzo nie wiem, jakąś wskazówką może być pewnie port (443) -- ale wiadomo, niekoniecznie..

a jeżeli chodzi o pierwsze - to przy pomocy php otwieraj sobie bylejaką stronę https, np
https://www.mbank.com.pl/ i sprawdzaj czy ściąga zawartość

0

Jeśli typ proxy byłby anonymous, high anonymous lub "silniejszy" to nie wykryjesz tego proxy.

0

@kuba_ku

Nie chodzi o wykrycie czy użytkownik który odwiedza stronę używa proxy. Mam po prostu małą listę i chciałbym ją sprawdzić pod kątem ich typu.

0

http://aliveproxy.com/proxy-checker/
Wpisujesz tam adres IP i port proxy, klikasz na przycisk obok. Przewijasz stronę na dół i tam jest napisane wszystko o tym proxy.

0

Dzięki, już znalazłem tą stronkę, ale bardziej interesuje mnie mechanizm jej działania, bo gdybym chciał jej użyć to zapewne zostałbym zbanowany za zbyt wiele zapytań. Jesli wiesz jak działa ta stronka, to bardzo byś mi pomógł. Napiszę podobną i sprawdze swoją listę raz-dwa.

0

Anonymous - HTTP Proxy server does not send HTTP_X_FORWARDED_FOR variable to host, this improves privacy since your IP address cannot be logged.

High anonymity - HTTP Servers of this type don't send HTTP_X_FORWARDED_FOR, HTTP_VIA and HTTP_PROXY_CONNECTION variables. Host doesn't even know you are using proxy server an of course it doesn't know your IP address.

Zapewne skrypt na tej stronie każe wejść proxy o podanym IP na http://aliveproxy.com/costam i w skrypcie spisuje czy proxy podało forwarded for oraz czy dało radę otworzyć tą samą stronę w protokole https. Jak chcesz listę to sobie regexpem na przykład z proxy.org wyciągnij całą listę bramek.

0

Nie wiem czy coś to wniesie do tematu bo na webmasterce się nie znam, ale do sprawdzania proxy w programach używałem skryptów z googli o nazwie "proxy judge".
http://www.proxy4free.info/proxyjudge.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1