Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Подружим idhttp, idsocksinfo и idssliohandlersocketopenssl |

16.01.2010, 12:51
|
|
Banned
Регистрация: 25.11.2007
Сообщений: 62
Провел на форуме: 1702086
Репутация:
89
|
|
Подружим 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)
|
|
|
|