Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

Прокси с помощью IdMappedPortTCP1   Найти похожие ветки 

 
alex-drob ©   (2006-05-09 20:17) [0]

Что-то я не пойму, прокси может работать только с одним хостом в интернете или нет?
Читал про IdMappedPortTCP1 и везде написан пример что если в браузере ввести ip который указан в настройках IdMappedPortTCP1 то загрузиться страница которая также указана в насройках этого компонента.
А можно ли зделать чтобы при вводе любога адреса в строке браузера IdMappedPortTCP1 обращался бы к тому сайту на который ссылается строка браузера? Или нужно создавать по компоненту на каждый сайт.


 
Пусик ©   (2006-05-09 21:13) [1]


> alex-drob ©   (09.05.06 20:17)


IdMappedPortTCP - это не прокси.


 
KilkennyCat ©   (2006-05-09 21:22) [2]

Пусик, фото в студию! Такая умная девушка... а вдруг еще и красивая? :)


 
Пусик ©   (2006-05-09 21:25) [3]


> KilkennyCat ©   (09.05.06 21:22) [2]
>
> Пусик, фото в студию! Такая умная девушка... а вдруг еще
> и красивая? :)

щазз


 
Пусик ©   (2006-05-09 21:27) [4]


> alex-drob ©   (09.05.06 20:17)


См. TIdHTTPProxyServer


 
KilkennyCat ©   (2006-05-09 21:31) [5]


> [3] Пусик ©   (09.05.06 21:25)


понятно. некрасивая. Ну так бы сразу и сказала...


 
Пусик ©   (2006-05-09 21:34) [6]


> KilkennyCat ©   (09.05.06 21:31) [5]
>
>
> > [3] Пусик ©   (09.05.06 21:25)
>
>
> понятно. некрасивая. Ну так бы сразу и сказала...


вот так вот просто, да? дай фотографию да и фсе тут?


 
KilkennyCat ©   (2006-05-09 21:36) [7]


> [6] Пусик ©   (09.05.06 21:34)


не переживай так... зато умная! :)


 
alex-drob ©   (2006-05-10 02:24) [8]


> См. TIdHTTPProxyServer


В IdMappedPortTCP1 можно было изменить исходящие и входящие данные, а в TIdHTTPProxyServer я не могу понять как это сделать?


 
Джо ©   (2006-05-10 02:42) [9]

Обрабатывать OnHTTPDocument, кажется.


 
alex-drob ©   (2006-05-10 02:55) [10]


> Обрабатывать OnHTTPDocument, кажется.

Я тож так думаю, но немогу что именно.

IdHTTPProxyServer1HTTPDocument(
 ASender: TIdHTTPProxyServer; const ADocument: String;
 var VStream: TStream; const AHeaders: TIdHeaderList);


ADocument, AHeaders - эти значения поменять нельзя, значит это не то.
VStream - там постоянно нечего нет и размер = 0.
ASender - остаёться здесь, но я не могу найти что именно.


 
Джо ©   (2006-05-10 03:02) [11]

> ADocument, AHeaders - эти значения поменять нельзя, значит
> это не то.

Зачем менять экз. AHeaders? В нем лежат заголовки, насколько я понимаю. Их можно оттуда удалять/вставлять/менять воспользовавшись соотв. методами этого класса.
ADocument, конечно, менять не нужно. В нем просто находится URL страницы, которую требуют предьявить. Требуют у твоего сервера, разумеется.


> var VStream: TStream

Ну, так сюда и нужно писать содержимое. Откуда ж у него размер будет отличаться от 0, если ты предварительно ничего туда не записал?


 
alex-drob ©   (2006-05-10 03:07) [12]

Для чего вобще VStream нужен? Что туда можно писать?


 
Джо ©   (2006-05-10 03:09) [13]

> [11] Джо ©   (10.05.06 03:02)

Кстати, оказалось еще проще. Это компонет предварительно всё-таки обращается к нужной странице, помещает ее содержимое в VStream и генерирует событие OnHTTPDocument. Так что ни о каком Size=0 речи нет, не обманывай :)


 
Джо ©   (2006-05-10 03:10) [14]

> [12] alex-drob ©   (10.05.06 03:07)
> Для чего вобще VStream нужен? Что туда можно писать?

В нем, на момент возникновения событий находятся уже прочитанные данные затребованной браузером страницы.
А что туда писать? Откуда я знаю, что ты туда хочешь писать?!


 
Джо ©   (2006-05-10 03:22) [15]

В общем, вот накропал элементарный пример обработчика, а то так бесконечно можно разговаривать.

// на запрос любой страницы будем возвращать
// вместо нее свою собственную, сгенерированную нами
procedure TForm22.IdHTTPProxyServer1HTTPDocument(ASender: TIdHTTPProxyServer;
 const ADocument: string; var VStream: TStream; const AHeaders: TIdHeaderList);
begin
 VStream.Free;
 VStream := TStringStream.Create("<HTML> <BODY> Hello </BODY> </HTML>");
end;


Знатоки Инди, ногами сильно не бейте, я этот компонент сегодня впервые вижу :-)


 
alex-drob ©   (2006-05-10 03:28) [16]

Спасибо за помощь!

А если слаживать значение VStream.size постоянно, таким образом можно получить значение входящего траффика?


 
alex-drob ©   (2006-05-10 03:34) [17]

Да и ещё вопрос.
Как можно записать значения VStream в переменную string?
Пробую так:
VStream.Read(bf,VStream.Size);
Ошибка AV


 
Джо ©   (2006-05-10 03:47) [18]

> [17] alex-drob ©   (10.05.06 03:34)
> Да и ещё вопрос.
> Как можно записать значения VStream в переменную string?


var
 S: string;
begin
 SetLength (S,VStream.Size);
 VStream.Read (S[1],VStream.Size);
end;



> А если слаживать значение VStream.size постоянно, таким
> образом можно получить значение входящего траффика?

Ну, не совсем. Трафик разный бывает, далеко не только HTTP. Кроме того, еще размер заголовков нужно считать. И еще всякое :)


 
alex-drob ©   (2006-05-10 03:55) [19]

Большое спасибо за помощь!


 
Арт   (2006-05-10 11:46) [20]

а есть ли какая компанента чтоб можно было также просто реализовать не только http прокси, а tcp в общем?



Страницы: 1 вся ветка

Текущий архив: 2006.06.04;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.044 c
15-1147526071
boriskb
2006-05-13 17:14
2006.06.04
Госдума приравняла российских программистов к малому бизнесу,


1-1145391209
Error27
2006-04-19 00:13
2006.06.04
При минимизации окна визуально пропадают некоторые элементы


15-1147451292
Mozart
2006-05-12 20:28
2006.06.04
Странный спам...


2-1147629622
Mashulia
2006-05-14 22:00
2006.06.04
Помогите девушке


8-1136239895
DoSpyRap
2006-01-03 01:11
2006.06.04
ПЕРИОДИЧЕСКИЙ СОХРАНЕНИЕ ЭКРАНА