информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаАтака на InternetВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Но ведь ему надо где-то взять настройки проксей? 18.08.04 10:46  Число просмотров: 1485
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
<programming>
[C++] Как программно управлять Internet Explorer 18.08.04 07:46  
Автор: null_system Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Вопрос в следующем, проге необходимо получить доступ в Inet с параметрами IE (настройки безопасности, proxy и пр.). В идеале, получить объект IE и управлять им.
[C++] В идеале... 18.08.04 08:42  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
> Вопрос в следующем, проге необходимо получить доступ в Inet
> с параметрами IE (настройки безопасности, proxy и пр.). В
> идеале, получить объект IE и управлять им.
1) OLE. Можно создать объект IE в окне своего приложения. Но нахрена? ;-)
2) WinINet Functions. Можно использовать их. Потому что IE их использует ;-) И как раз настройки подключения на них распространяются 100%.
3) Юзать Socks. А настройки интернета взять из WinINet Functions ;-) Это гемор и изобретательство велосипеда.

Удачи.

WinINet Functions
Зачем чего-то брать из виннет, если юзать сокс? Просто... 18.08.04 10:02  
Автор: void <Grebnev Valery> Статус: Elderman
<"чистая" ссылка>
> 3) Юзать Socks. А настройки интернета взять из WinINet
> Functions ;-) Это гемор и изобретательство велосипеда.

Зачем чего-то брать из виннет, если юзать сокс? Просто юзать сокс. Т.е. все руками на гольных сокетах. Да и потом он хочет, скорее всего только нттр от IE. Там сокс ему не нужен, ибо практически любой прокси поддерживает хттп-прокси. Другими словами, просто писать и читать в сокет проки. Без сокс.
Но ведь ему надо где-то взять настройки проксей? 18.08.04 10:46  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
[C++] Но ведь ему надо где-то взять настройки проксей? 19.08.04 01:18  
Автор: void <Grebnev Valery> Статус: Elderman
<"чистая" ссылка>
Не понимаю... В простейшем случае, если сокс4, так ничего вроде и не надо... Конектимся к 1080 (редко кто меняет), говорим какой удалённый сокет хотим.... Пишем и читаем в сокс-сокет... Ниже избитый наколеношный пример - шлём мыло на mail.ru.

int main( void )
{
WSAData wsaData;

if (WSAStartup(0x202,(WSADATA *)&wsaData ))
{
printf("WSAStart error %d\n",WSAGetLastError());
return -1;
}

SOCKET sock;
sock=socket(AF_INET,SOCK_STREAM,0);
if ( sock < 0 )
{
printf("Socket() error %d\n",WSAGetLastError());
closesocket(sock);
WSACleanup();
return -1;
}

#define SOCKSSERVER "192.168.x.y"
#define SOCKSPORT 1080

sockaddr_in socks_addr;
socks_addr.sin_family = AF_INET;
socks_addr.sin_port = htons(SOCKSPORT);
socks_addr.sin_addr.s_addr= inet_addr(SOCKSSERVER);

if ( connect( sock,(sockaddr *)&socks_addr, sizeof(socks_addr)) )
{
printf("Connect error %d\n",WSAGetLastError());
closesocket( sock );
WSACleanup();
return -1;
}

_DWORD sin_addr = inet_addr( "194.67.23.10" );
_WORD sin_port = htons( 25 );

char sockscmd[9];
memset( sockscmd, 0, 9 );

sockscmd[0] = 4;
sockscmd[1] = 1;
memmove( &sockscmd[2], &sin_port, 2 );
memmove( &sockscmd[4], &sin_addr, 4 );

_send( sock, (_BYTE *) sockscmd, 9 , 0, 1 );
int num = _recv( sock, (_BYTE *) sockscmd, 8, 0 , 1);
if ( num != 8|sockscmd[1]!=90 )
{
printf("Socks request failed. Press any key ...\n");
closesocket(sock);
WSACleanup();
return -1;
}

char sndbuf[256];
char rcvbuf[256];

strcpy(sndbuf, "HELO mail.ru\r\n");

memset( rcvbuf, 0, 256 );
int rcvbytes = _recv( sock, (_BYTE *) rcvbuf, 256, 0, 1);
printf("%s\n",rcvbuf);

// HELO
printf("%s\n",sndbuf);
_send( sock, (_BYTE *) sndbuf, (_DWORD) strlen(sndbuf), 0, 1);
memset( rcvbuf, 0, 256);
rcvbytes = _recv( sock, (_BYTE *) rcvbuf, 256, 0, 1);
printf("%s\n",rcvbuf);

...
...

shutdown( sock, SD_SEND );
closesocket( sock );
WSACleanup();

return 0;
}
Вопрос в оснлвном в другом - эти настройки надо-либо выкопать... 19.08.04 02:56  
Автор: Killer{R} <Dmitry> Статус: Elderman
Отредактировано 19.08.04 02:57  Количество правок: 1
<"чистая" ссылка>
> Не понимаю... В простейшем случае, если сокс4, так ничего
> вроде и не надо... Конектимся к 1080 (редко кто меняет),
> говорим какой удалённый сокет хотим.... Пишем и читаем в
> сокс-сокет... Ниже избитый наколеношный пример - шлём мыло
> на mail.ru.

Вопрос в оснлвном в другом - эти настройки надо-либо выкопать из настроек ИЕ либо у юзера спросить. Причем если в винде несколько соединенй то надо проверять которое активно и тп. Кроме того не думаю что автору надо через сокс отправлять мыло. А скорее всего страничку забрать наскока я понял. На Internet API это десяток строчек, и никакого геморра с настройками проксей, обработкой SSL для https сайтов - зачем писать то что уже реализовано?
Вот откопал свой пример который когда то постил тут: http://www.bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=2&m=104272
Согласен, Виннет проще ;)) 19.08.04 05:13  
Автор: void <Grebnev Valery> Статус: Elderman
<"чистая" ссылка>
[c++] спасибо всем. я решил вопрос через shdocvw.dll и mshtml.dll 19.08.04 07:13  
Автор: null_system Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach