Small Proxy Checker v1.0b + UPDATE 1.1b

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by slesh, 9 Sep 2010.

  1. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    MAIN INFO
    1. Размер чисты: 9216 байт
    2. Размер после UPX: 6656 байт
    3. Формат прокси IP:pORT
    4. Возможность проверки:
      • HTTP GET - посылается GET запрос
      • HTTP CONNECT - посылается CONNECT запрос
      • SOCKS4 - обычный Socks4 прокси
      • SOCKS5 by Addr - Socks5 с адресацией по IP
      • SOCKS5 by Host - Socks5 с адресацией по домену
    5. Поддержка проверки по нескольким типам прокси
    6. Поддержка многопоточности: до 1000 потоков
    7. Задание таймаута на подключение к прокси (в секундах)
    8. Задание таймаута на получение данных от прокси (в секундах)
    9. Загрузка списка прокси из файла
    10. Сохранение прочеканных прокси в файл

    SYS INFO
    1. Язык программирования: Си
    2. Компилятор: MS VS 2008
    3. Сеть: WinSock 2
    4. Использование библиотек: Только WinApi
    5. Интерфейс: WinApi Dialog

    Check Info
    1. SOCKS 4 - Проверка возможности коннекта к www.google.com без передачи данных
    2. SOCKS 5 - Проверка возможности коннекта к www.google.com без передачи данных
    3. HTTP CONNECT - Проверка возможности коннекта к www.google.com:80 без передачи данных
    4. HTTP GET - Проверка возможности коннекта к www.google.com с запросом /favicon.ico
    5. HTTP чек производится по средствам проверки ответа на сигнатуру HTTP и 200
    6. SOCKS чек производится по средствам проверки статуса коннекта из ответа прокси

    ScreenShot
    [​IMG]

    GUI INFO
    1. Connect Time Out (sec) - задание таймаута для коннекта к прокси
    2. Read Time Out (sec) - задание таймаута для получения данных от прокси
    3. Threads Count - кол-во потоков для чека.
    4. Active thread - показывает сколько активных потоков в данный момент
    5. Good: кол-во прокси удачно прошедших проверку
    6. All: кол-во прокси для чека
    7. Start: начать проверку прокси
    8. Stop: прервать проверку прокси
    9. Proxy List - список проксей для проверки
    10. Good Proxy - список хороших проксей
    11. Load - загрузить прокси из файла
    12. Save - сохранить прокси в файл
    13. Clear - очистить список

    WARNING
    1. Если выбирается несколько типов проверки, то прокси чекается на каждый тип, и если проверка проходит удачно для всех выбранных типов, то прокси считается хорошим
    2. Прокси не пингуется перед проверкой, по этому настраивайте таймаут коннекта
    3. Если задать потоков больше чем проксей, то оно уменьшится до кол-ва проксей
    4. При новой проверке хорошие прокси добавляются в список,а не перезаписывают его. Так что надо юзать кнопку Clear
    5. Если www.google.com будет недоступен, то проверка не пройдет
    6. Если задать нулевое значение для таймаутов, то оно примет дефолтовое значение: 25 сек коннект и 10 сек чтение
    7. Если задано несколько типов проверки и прокси и при проверке нет возможности приконнектится к прокси, то другие типы проверок не производятся.
    8. Отсутствует поддержка авторизации на прокси.
    9. Это только бета версия

    Просьба потестить софтину, все глюки описывайте сюда.
    По определенным обстоятельствам исходники выкладывать пока не буду.

    В аттаче новая версия. Описание тут:
    Small Proxy Checker v1.1b UPDATE
     

    Attached Files:

    #1 slesh, 9 Sep 2010
    Last edited: 10 Sep 2010
    6 people like this.
  2. lamer811

    lamer811 Elder - Старейшина

    Joined:
    8 Nov 2009
    Messages:
    130
    Likes Received:
    39
    Reputations:
    12
    Спасибо, софт очень полезный!

    Хм... начал тестить, загрузил список вида: IP:port, но всегда ошибка возникает, что прокси лист пустой
     
    #2 lamer811, 9 Sep 2010
    Last edited: 9 Sep 2010
  3. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    slesh красавчик
    я как то писал себе похожее только не такое богатое по функционалу а скорее кастомное нужно было много проксей для одного занятия )) пойду потестю 9кб этож чудо надо хоть потрогать и то приятно
    да и может скука пройдет а то совсем я захворал
     
  4. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    За старания +
    Лучше автоматическое определение разделителя при загрузке прокси
    Почему только 1000?
    Зачем привязываться к конкретному сайту?
    Лучше пусть юзер задает ссылку и контрольную строку чтобы чекать на сайт. К тому же, может я захочу указать небольшую страничку, чтобы повысить скорость чекинга?
     
  5. vek-85

    vek-85 Banned

    Joined:
    15 Sep 2007
    Messages:
    3
    Likes Received:
    49
    Reputations:
    0
    Не загружает 56к проксей, текстовик 1.1 Мб, но чекер супер, спасибо.
     
  6. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    1) ну да, забыл упомянуть что ограничение на загрузку списка проксей - 1 метр. Если что то могу заменить на более большое. т.е. специально поставил ограничение. на всяк случай. можно убрать вообще
    2) greki_hoy а ты пробовал ставить время по больше для таймаутов. И какие параметры проверки были? и какая ОС?
    3) lamer811 а покажи хоть пару записай? чтото странно тогда. Какая у тебя ОС ? Покажи скриншет с добавленными прокси, может у тебя они были в линуксовском формате и Edit просто не распознал перевод строки.
    4) GhostOnline ну дык тут фишка в том, что непосредственно страница и не грузится. развичто тока когда тест HTTP GET. Да и значек весит 1 кб тока.
    Конечно можно и задать адрес. но както не думал про это.
    5) разделители? ну вообщето практически всегда формат проксей именно ip:port а всё другое от лукавого.
    6) 1000 потоков - а зачем больше? смысл?
     
    #6 slesh, 9 Sep 2010
    Last edited: 9 Sep 2010
    1 person likes this.
  7. DrakonHaSh

    DrakonHaSh Elder - Старейшина

    Joined:
    16 Apr 2008
    Messages:
    118
    Likes Received:
    29
    Reputations:
    24
    slesh
    ты похоже рдот не читаешь :)
    продублирую :)

    => куча ложных срабатываний на проксях, которые любят возвращать свои сообщения вместо запрашиваемого контента.

    [​IMG]
    можно сделать аналог этого ? эффективность при таком подходе значительно выше получается.
     
    1 person likes this.
  8. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Не знаю я юзал чекеров немеренно.. один нормальный который работает это sockchain..
     
  9. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 DrakonHaSh уже читал на rdot, начал доработку )

    Обнаружил странную вещь. почемуто в Edit не могу вставить много строк сразу
    А RichEdit не прикручивается.
     
  10. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Потому что при инициализации диалога надо отослать текстовому полю сообщение
    PHP:
    SendDlgItemMessage(hWndполеEM_SETLIMITTEXT, -10);
    По умолчанию лимит длины 32768 символов вроде.
     
    #10 GRRRL Power, 9 Sep 2010
    Last edited: 9 Sep 2010
    1 person likes this.
  11. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    1) перевел всё на RichEdit так что текста можно будет впихнуть побольше. Хотя наверное верну Edit ))
    2) убрал ограничение на кол-в загружаемых прокси
    3) добавил возможности списывания хоста и файла для теста.
    4) почти добавил поддержку поиска данных на странице
    5) убрал глюк с пустым прокси листом (кое какие данные забыл прописать)
    6) добавлю авторазделитель списка с возможностью его редактирования. т.е. можно будет юзать длинные разделители типа ::::

    Так что завтра с утречка подправлю и выложу апдейт
     
  12. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    решил сделать более удобнее и менее затратнее по размеру )
    Если можно так сказать универсальный парсер списка.
    выбираются числа таким образом:
    hz 1-255 hz 0-255 hz 0-255 hz 1-255 hz 1-65535 hz
    где hz - абсолютно любые символы, любой последовательности, кроме цифр. так что разделитель цифр в IP может быть любой и разделитель порта любой, ну и мусор отсекается т.е. такой парсер спокойно понимает прокси вида:
    127.0.0.1|658
    127.0.0.1;658
    127.0.0.1|658|xxxxxx
    127,0,0,1:658
    127,0,0,1:658|xxxxxxxxxx
    xxx127xxx0xx0xx1xxx658|xxxxxxxxxx
    <td>127,0,0,1</td><td>658</td>

    И спокойно всё обошлось без sscanf и регулярок. Обычный цикл + atoi

    Ближе к обеду апдейт будет)
     
  13. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    2slesh
    так намного удобнее да я вот еще о чем подумал сейчас создал юниховый файл вида 123.123.123.123:56\n
    56.56.56.56:777
    и вендоваый аналог
    123.123.123.123:56\r\n
    56.56.56.56:777
    так вот можно сделать чтоб можно было менять разделитель строк на юниховый вариант чтоб можно было открывать списки созданные в юнихе и сделать опцию переключатель виндовый файл или юниховый
    чтоб автоматически менялся разделитель строк у парсера
     
  14. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 greki_hoy сделал при загрузке списка из файла автоопределение формата и если это Unix формат то он сразу переводится в виндовый и тока потом добавляется в Edit
     
  15. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Small Proxy Checker v1.1b

    Новая версия
    Small Proxy Checker v1.1b​

    Нововведения:
    1. Возможность вписывание домена/ip сайта куда коннектится для теста
    2. Возможность вписывания файла на серваке для запроса
    3. Возможность проверки через поиск текста на странице
    4. Возможно указания максимально скачиваемого кол-ва байт из тела страницы

    Исправления:
    1. Универсальный парсер прокси листа. поддерживается любой формат прокси, вида:
      --xxx-xxx-xxx-xxx-xxx-
      где xxx - число, "-" - любые символы любой длинны, кроме цифр.
    2. При парсе проверяется диапазон значений для IP и для PORT. а именно:
      1-255.0-255.0-255.1-255:1-65535
    3. Возможность грузить списки больших размеров
    4. Поддержка списков в Unix формате
    5. Исправил баг при парсе прокси листа
    6. Увеличился размер:
      чистый: 10752 байт
      после UPX: 7169 байт

    Принцип работы:
    1. При обычном режиме - ничего не изменилось, всё также, только домен и файл берутся из поля ввода
    2. При режиме проверки страницы:
      1. Socks4/5 - коннект на прокси, посылка запроса на коннект к серваку, проверка ответа, посылка HTTP запроса, получение данных, проверка ответа HTTP 200, проверка в полученных данных текста который указан в поле для поиска
      2. HTTP Connect - коннект на прокси, посылка запроса на коннект к серваку, проверка ответа HTTP 200, посылка HTTP запроса, получение данных, проверка HTTP 200, проверка в полученных данных текста который указан в поле для поиска
      3. HTTP Get - коннект на прокси, посылка HTTP запроса, получение данные, проверка ответа HTTP 200, проверка данных текста который указан в поле для поиска
      4. Если размер данных для считывания > Content-Length из HTTP заголовка ответа, то он урезается до этого значения.
      5. HTTP заголовок ответа может быть до 8кб.
      6. Даже если стоит размер данных для считывания = 0, то всё равно считается данных чуть больше, за счет того что места под заголовок 8кб, а данные с заголовком могут склеиться.
      7. Режим с проверкой страницы медленнее чем обычный режим, за счет того что посылается и получается запрос.

    Скрин:
    [​IMG]

    Новые поля интерфейса:
    1. Domain: домен для коннект или ip
    2. File: файл на сервере. / ставить не надо перед именем
    3. CheckText - включение режима проверки страницы
    4. Рядом поле ввода - текст который будет искаться. Не действует без включения режима проверки страницы
    5. Max Page Len: максимальный размер данных (в байтах) которые будет считываться после HTTP заголовка, пока не найдется текст для поиска. Не действует без включения режима проверки страницы
     

    Attached Files:

    #15 slesh, 10 Sep 2010
    Last edited: 10 Sep 2010
  16. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 greki_hoy спс. нашел баг. Забыл что SendMessage(EM_GETLINE) не завершает строку нулем, вот и шла склейка с одним символом левым и по этому номер порта выходил из диапазона и был такой глюк. Перезалью скоро

    Обновил
     
    #16 slesh, 10 Sep 2010
    Last edited: 10 Sep 2010
  17. 090808

    090808 Member

    Joined:
    15 Mar 2009
    Messages:
    171
    Likes Received:
    46
    Reputations:
    10
    Пропускает валида очень много
     
  18. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 090808 ну зависит от настройки и типа теста.

    Кстати заметил на некоторых проксях странность. делаю запрос на гугль или яндекс. А в снивере вижу что вернулся код HTTP 302 с редиректом на vkontakte.ru
     
  19. 090808

    090808 Member

    Joined:
    15 Mar 2009
    Messages:
    171
    Likes Received:
    46
    Reputations:
    10
    Яндекс любит вк и сотрудничают, а про настройки похеру одно и тоже.
     
  20. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 090808 всмысле пропуск валида? Дай мне прокси который пашет а чекер пишет что не пашет.