• XSS.stack #1 – первый литературный журнал от юзеров форума

Какой механизм прокси/сокс чекера?

Quake3

TPU unit
Забанен
Регистрация
03.11.2010
Сообщения
4 529
Решения
4
Реакции
5 305
Депозит
0.046
Пожалуйста, обратите внимание, что пользователь заблокирован
Подскажите пожалуйста, что можно почитать на тему, чтобы понять, как делается прокси/сокс чекер? В плане, сам процесс чека прокси на низком уровне.
Я смотрел некоторые сорцы, но что-то не могу понять суть до конца. Статьи такой также не найду.

Я примерно понимаю алгос - надо подключится к прокси и попробовать послать гет запрос на какой-то сайт через проксю (гугл или что);после сравнить ответ, есть ли там хтмл код нужного сайта или нет. Неясно другое, как подключится к прокси/сокс безо всяких там курлов, вининет и т.д.
 
Quake3,прежде всего-сетевые протоколы и устройство сетей-там есть описания и упоминания про прокси)
Аффтора непомню-приду домой-напишу подробней... B)
 
Для HTTP/HTTPS - спеки протокола HTTP (telnet proxy.com 80 для "проверки себя", HTTP же плейнтекст - легко "руками" потренироваться). Для SOCKS - как ни странно спеки протокола SOCKS 4/5. Можно взять готовый чекер (или любое ПО, умеющее прокси, тот же веб-браузер подойдет) и вооружиться сниффером (кому как, а мне всегда легче понимать на примере).
Запросы можно слать на скрипт по типу http://www.forumproxyleecher.com/fpl-judge.php

А что именно непонятно-то? :)
 
для http так
1) находим рабочий урл с http (http://google.com)
2) берем проксю
3) с HttpOpenRequest(или InternetOpenUrl) через нашу проксю пробуем коннектиться на этот урл
далее HttpQueryInfo(hRequest, HTTP_QUERY_STATUS_CODE, szStatusCode, &dwInfoSize, NULL);
если szStatusCode== 200, то прокся рабочая
 
как подключится к прокси/сокс безо всяких там курлов, вининет и т.д.
телепатией? сокеты в любом случае будут задействованы

в пример кусок кода из админки zeus проверяющий на доступность сокс порт
Код:
    //Проверка сокса.
    if(isset($_GET['ipv4']) && isset($_GET['port']))
    {
      $ok = 0;
      if(($s = @fsockopen($_GET['ipv4'], $_GET['port'], $errn, $errs, 5)))
      {
        @stream_set_timeout($s, 5);
        $data = pack('CCSL', 4, 1, 0, 0)."\0"; //Заголовок Socks4.
        if(@fwrite($s, $data) && ($data = @fread($s, 8)) && strlen($data) == 8)$ok = 1;
        fclose($s);
      }
      
      if($ok == 1)echo str_replace('{TEXT}', LNG_BA_PORT_SOCKS_SUCCESS, THEME_STRING_SUCCESS);
      else        echo str_replace('{TEXT}', LNG_BA_PORT_SOCKS_FAILED,  THEME_STRING_ERROR);
      
      die();
    }
как видно из примера - вовсе не обязательно делать запрос на сторонний сервер, достаточно обработать ответ на наличие типичных протоколу заголовков

более подробно о протаколах написано в вики
http://en.wikipedia.org/wiki/SOCKS

но стоит учитывать ограничения провайдеров, например t-mobile вносит изменения в страницы на открытых протоколах (http) удаляя закомментированный код и символы переноса строки...

p.s. я лично не заморачивался и просто использовал модуль аналогичный curl.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх