[Delphi] Распознание прокси

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Kandi, 14 Sep 2011.

  1. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    Всем привет, как можно распознать прокси - HTTP/Socks 4/Socks 5. Только по порту или как-то иначе можно?! расскажите плиз :rolleyes:
     
  2. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    по протоколному запросу. т.е.
    1) приконнектился
    2) послал запрос.
    3) получил ответ.
    4) обработал ответ
    5) отконнектился

    и так для socks4/socks5/http
    если для socks4 - это один пакет TCP коннекта к любому серваку. к примеру гугль. а там пофигу, главное чтобы пришел ответ.
    Для socks5 - пакет выбора метода авторизации - буквально 3 байта. запрос. и 2 байта ответ.
    для HTTP - обычный GET запрос
     
    #2 slesh, 14 Sep 2011
    Last edited: 14 Sep 2011
  3. inCode

    inCode Member

    Joined:
    20 Jun 2011
    Messages:
    141
    Likes Received:
    22
    Reputations:
    5
    можно 1 сокетом и проверять ответ от сервера, чтобы не делать кучу реквестов
    0x04 - socks4
    0x05 - socks5
    else - http
     
  4. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 inCode за один коннект не получится потому, что
    1) большое кол-во проксей просто игнорят запросы левых протоколов и вызывают сразу дисконнект. т.е. послал socks4 запрос на socks5 сервер, то сервер с большой вероятностью просто сделает дисконнект и ничего не ответит.

    2) бывают мультипортовые прокси. т.е. на одном порту сразу идет поддержка и socks4 и socks5 и http
     
  5. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    slesh, а не найдется у Вас какой-нить интересной и полезной лит-ры про TCP? :confused:
    Можно еще пример с использованием пакетов, если не сложно) :rolleyes:
     
    #5 Kandi, 15 Sep 2011
    Last edited: 15 Sep 2011
  6. jon21

    jon21 Banned

    Joined:
    28 Aug 2008
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Пример многопоточного прокси чекера на DELPHI
    http://www.sendspace.com/file/rae68n
     
  7. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    спасибо, интересный код. Но я хотел узнать как распознать проски, точнее раскидать их по полкам - http\socks4\5
     
  8. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Kandi, зачем тебе документация по TCP? TCP это транспортный протокол, поверх которого работают протоколы прикладного уровня (POP, SMPT, SOCKS, HTTP). Документации по открытым протколам можно найти в RFC. конкретно для socks 5 версии - RFC 1928
    А если уметь пользовтаься поиском, не трудно отыскать различия в 4 и 5 версии SOCKS...
     
    _________________________