Internet i bezpieczeństwo

Szybkie sprawdzanie proxy w Fast Google Proxy Checker

szybkość

Jak już informowałem Was na Facebooku, w ramach nauki programowania aplikacji wielowątkowych stworzyłem mały, zgrabny programik do testowania serwerów proxy. Nie jest to żadna nowość, takich programów sporo na rynku. Wiem że sofcik może nie jest idealny od strony programistycznej (zdziwiłbym się jakby był na tym etapie), ale jako że działa stabilnie udostępniam go, może komuś się przyda. Jeśli będzie zainteresowanie projektem, nie wykluczam rozbudowy aplikacji.

Dla programu wybrałem nazwę Fast Google Proxy Checker. Docelowo będzie to jeden z modułów nowej wersji Google Suggest Scrapera, który zostanie całkowicie przerobiony na aplikację wielowątkową. Zresztą nie on jedyny, docelowo większość programików, które zrobiłem bądź zrobię w przyszłości zyskają taką funkcjonalność – która jak wiemy pozwala wykonać zadanie w zdecydowanie krótszym czasie, aniżeli ma to miejsce w jednowątkowej aplikacji.

Fast Google Proxy Checker

Przejdźmy do omówienia poszczególnych funkcji programu. Kolejne przyciski (licząc od lewej) oznaczają…

  • Wczytanie listy z proxy (format oczywiście IP:PORT),
  • Zapis działających proxy do pliku,
  • Czyści listę zostawiając same działające adresy (ze statusem OK),
  • Uruchamia sprawdzanie,
  • Zatrzymuje,
  • Informacje o autorze i programie.

Inne:

  • Opóźnienie – jest to czas wyrażony w milisekundach, który decyduje o tempie tworzenia nowych wątków.
  • Timeout – czas po którym zainicjowane żądanie wygaśnie.
  • Serwer – adres URL do testowania.

Statusy pojawiające się przy każdym sprawdzonym/sprawdzanym adresie proxy:

  • Checking – trwa sprawdzanie,
  • OK – oznacza, że proxy jest zdatne do użytku (bazując na URL podanego serwera).
  • Timeout – nie otrzymano odpowiedzi od serwera w podanym limicie czasu.
  • Server Error – nie można było połączyć się z serwerem.
  • Aborted – wszelkie wątki, które zostały automatycznie zakończone przez program. Niektóre wątki potrafią się przedziwnie zawiesić, na ten moment nie wiem czym to jest spowodowane. Dla bezpieczeństwa Fast Google Proxy Checker postara się wszystkie zakończyć.
  • Unknown Error – wszelkie niesklasyfikowane błędy, które wystąpiły podczas sprawdzania.

Schemat wątków jest inny niż w podobnych programach. Początkowo testy przeprowadzałem na pakietowym sprawdzaniu co 10 sztuk, ale w tym wariancie jest jeden problem, w danej jednostce czasu inicjowanych jest 10 wątków, czyli do serwera wysyłanych jest jednocześnie 10 requestów – przy wolniejszych połączeniach cierpi na tym wydajność sprawdzania, dlatego zdecydowałem się na inny wariant, prostszy i wydajniejszy.

Ustawiając czas opóźnienia tworzenia nowych wątków mówimy aplikacji, że co zadaną ilość milisekund ma utworzyć nowe wątek, w którym zostanie uruchomione sprawdzanie jednego adresu proxy. Ustawiając wartość na 500 milisekund (najefektywniejsza wartość w testach przy łączu 4Mbit/s) będą tworzone 2 wątki na sekundę. Przy normalnym jednowątkowym sprawdzaniu zadanie zajmie 1000 proxy x wartość timeout. Natomiast przy wielowątkowym 1000 proxy x wartość opóźnienia + 10s czas potrzebny na prawidłowe ukończenie wszystkich „zawieszonych” wątków. Więc podstawiając do tego wartości, czas wykonania aplikacji jednowątkowej 1000 x 3s = 3000s / 60s = 50 minut, dla wielowątkowej 1000 x 0.5 + 10s = 510s / 8.5 minuty. Teraz już chyba każdy widzi dlaczego zdecydowałem się nauczyć programowania wielowątkowego.

Czym większa wartość opóźnienia, tym lepsze efekty – uzyskamy więcej działających adresów proxy. Na wolnych połączeniach zalecana wartość to 1000 milisekund. Na szybszych najefektywniejsza to 500ms, ale w programie jest opcja zmniejszenia wartości nawet do 100ms (10 wątków na sekundę).

Jeśli zauważycie jakieś usterki w programie śmiało piszcie. Fast Google Proxy Checker jest do pobrania z Facebooka, zakładka Free SEo Tools. Do uruchomienia programu potrzebny jest Microsoft .NET Framework 4.0, soft testowany na Windows 7 64 bit i Windows Vista 32 bit.

O autorze

Mariusz Kołacz

Z zawodu mgr inż. informatyk, zwolennik nowoczesnych technologii i fan Nikoli Tesla. Prowadzi kilka blogów o tematyce technologicznej. Po godzinach lubi przeczytać dobrą książkę, pozwiedzać ciekawe miejsca w Polsce lub spędzić wolny czas na łonie natury.