![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование SOCS-прокси [WinXP]
S_T_E_P_A_N___ © (2007-03-19 14:07:00)Уважаемые мастера! У меня есть программа которая работает с моим сайтом через TWebBrowser (TEmbeddedWB) и Indy (TIdHTTP). Приблизительно так:
procedure TForm1.Button1Click(Sender: TObject)
begin
WebBrowser.Navigate('www.mysite.com');
end;
procedure TForm1.Button2Click(Sender: TObject)
begin
Memo1.Text:=idHTTP1.Get(www.mysite.com);
end;
Нужно сделать так, чтобы весь обмен данными c www.site.com шел через SOCKS-прокси. Поскольку программа уже написана, то нужно оформить установку прокси-сервера в виде независимой процедуры. Например так:
procedure TForm1.Button1Click(Sender: TObject)
begin
SetProxy(ProxyList[random(10)]); //процедура которая устанавливает нужний прокси.
WebBrowser.Navigate('www.mysite.com');
end;
procedure TForm1.Button2Click(Sender: TObject)
begin
SetProxy(ProxyList[random(10)]);
Memo1.Text:=idHTTP1.Get(www.mysite.com);
end;
Обратите внимание - мне нужно работать из SOCKS (а не HTTP) прокси-серверами, которые заданы в виде IP:Port. Программы типа FreeCap не подойдут, потому что изменять прокси нужно динамически в Run-Time. Использую Delphi2005. Если кто-то сталкивался с подобной проблемой, подайте идею решения. Желательно с примером. Спасибо за ответ.
S_T_E_P_A_N___ (2007-03-20 21:37:00) [1]Спасибо!!!
ustas (2007-03-20 10:00:00) [2]Бери пока я добрый :)
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
OleCtrls, SHDocVw, StdCtrls, urlmon, wininet, ComCtrls;
...
var
Form1: TForm1;
PIInfo: PInternetProxyInfo;
...
procedure TForm1.ButtonNavigateClick(Sender: TObject);
begin
New(PIInfo);
PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
PIInfo^.lpszProxy := PChar('socks=' + EditSocksProxyIP.text + ':' + EditPort.text);
PIInfo^.lpszProxyBypass := PChar('');
UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo, SizeOf(Internet_Proxy_Info), 0);
WebBrowser.Navigate(EditUrl.Text);
Dispose(PIInfo);
end;
clickmaker (2007-03-19 18:31:00) [3]http://www.indyproject.org/KB/
S_T_E_P_A_N___ (2007-03-19 18:28:00) [4]Ну и што дальше? Как весь трафик через сокет отправлять? Есть компонент TIdSocksInfo есть WebBrowser, idHTTP. Как ето все связать?
clickmaker (2007-03-19 18:08:00) [5]TIdSocks?