ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Подружим idhttp, idsocksinfo и idssliohandlersocketopenssl
  #1  
Старый 16.01.2010, 12:51
Аватар для Пуховой
Пуховой
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме:
1702086

Репутация: 89
Smile Подружим idhttp, idsocksinfo и idssliohandlersocketopenssl

Проблема работы с ssl через socks в indy наблюдается давно. Сколько бы не лазил на форумах – никому без геморроя не удавалось подружить 3 компоненты, дабы они работали более или менее корректно. Поэтому пришлось связывать самому.

Используемое:

- Delphi 2010 update 5
- Indy 10.5.7, последняя доступная ревизия
- SSL библиотеки из последних, приложу в посте

Прежде чем приведу код функции тестирования прокси для работы с ssl через socks 4/4a/5 версий, напомню, что нужно добавить в uses для использования данной функции:

- idhttp
- idcookiemanager
- idsslopenssl
- idcompressorzlib
- idsocks

idcookiemanager мы добавили на всякий случай – вдруг вы захотите проверять установку кукисов (некоторые прокси не отдают оные). idcompressorzlib – для экономии трафика (не увлекаться, даже на мощных серверах способна загрузить систему на все 120%).

Код:
function test_socks (proxyadr : string) : boolean;
var
  http : tidhttp;
  coo : tidcookiemanager;
  ssl : tidssliohandlersocketopenssl;
  compressor : tidcompressorzlib;
  sock : tidsocksinfo;
begin
  result := false;
  coo := tidcookiemanager.create;
  ssl := tidssliohandlersocketopenssl.create; ssl.ssloptions.method := sslvtlsv1; ssl.port := 443;
  http := tidhttp.create; http.iohandler := ssl; http.readtimeout := 60000; http.connecttimeout := 60000; http.allowcookies := true; http.handleredirects := false; http.cookiemanager := coo; http.request.useragent := 'mozilla/4.0 (compatible; msie 7.0; windows nt 6.0)'; http.request.acceptencoding := 'gzip, deflate';
  sock := tidsocksinfo.create; sock.authentication := sanoauthentication; sock.version := svsocks5; sock.host := copy (proxyadr, 1, pos (':', proxyadr) - 1); sock.port := strtoint (copy (proxyadr, pos (':', proxyadr) + 1, 5)); ssl.transparentproxy := sock;
  compressor := tidcompressorzlib.create; http.compressor := compressor;
  try
    if pos ('О компании', http.get ('https://passport.yandex.ru/passport?mode=passport'))  0 then result := true;
  except end;
  http.free; coo.free; compressor.free; ssl.free; sock.free;
end;
Читать далее
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IdHTTP и Socks4/5 прокси AquaKlaster С/С++, C#, Delphi, .NET, Asm 5 21.11.2009 04:12
[Delphi] Модификация IdHTTP DaemoniZ С/С++, C#, Delphi, .NET, Asm 5 27.09.2009 18:33
[Delphi]Долгий запрос idHttp Kuzya С/С++, C#, Delphi, .NET, Asm 0 04.09.2009 17:59
IdHTTP в delphi bag С/С++, C#, Delphi, .NET, Asm 15 21.01.2009 20:45
Подружим мобильный телефон с Linux silveran Схемы и программы 0 18.04.2006 06:38



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ