Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];

Вниз

Замена данных отправляемых при коннекте к серверу (тип браузера, сисетмы и т.д.)   Найти похожие ветки 

 
demonyca   (2002-02-03 03:39) [0]

Как можно учуществить замену данных отправляемых при коннекте к серверу (тип браузера, системы, языка ОС и т.д.)


 
demonyca   (2002-02-03 04:13) [1]

я понимаю, что это возможно сделать с помощью сокетов, но как прикруть это к тому же TWebBrowser?


 
Ghost.   (2002-02-03 14:35) [2]

Как прикруить не знаю, но цель должна оправдываь седства, можешь сделать свой прокси пехваывать запрос и переделываь его


 
demonyca   (2002-02-03 16:12) [3]

А где нибудь можно посмотреть хоть примерно как это делать?


 
Ghost.   (2002-02-03 16:34) [4]

Вот вартиант обработки того, что прислал бртаузер

//Получение данных от броузера и отправка их на HTTP-сервер
procedure TClientThread.LocalSocketDataAvailable(Sender:TObject;Error:Word);
var Cmd,LeftPart,RightPart:string;
i:Integer;
begin

try
FCount:=FLocalSocket.Receive(@FBuffer, SizeOf(FBuffer));//Получение от броузера
MainForm.Memo.Lines.Add("Addr "+FLocalSocket.PeerAddr);
MainForm.Memo.Lines.Add("Proto "+FLocalSocket.GetXPort);

i:=0;
While i<>10 do
begin
inc(i);
beep;
end;
//FLocalSocket.OnDataSent:=LocalSocketDataSent;//Эта процедура будет вызвана
//FLocalSocket.SendStr("<Body> Error!<BR>Вы не подключены к Internet</body>");
//Release;
//Exit;

except
end;

IF FCount<=0 then EXIT;//Ничего не принято от броузера, защита

//Броузер отдал запрос и ждет ответ (или выпадет по таймауту)
//С этого момента в FBuffer находится полный запрос броузера.
//Можно анализировать, изменять...

//В данном случае выделяем из запроса URL, HOST, команду,
//а также пишем на экран и в LOG

//Перенос буфера в строку
SetLength(FBufStr,FCount);MOVE(FBuffer,FBufStr[1],FCount);

//Выделение URL
FURL:=COPY(FBufStr,POS(" ",FBufStr)+1,LENGTH(FBufStr));
FURL:=COPY(FURL,1,POS(" ",FURL)-1);

//выделене имени хоста
FHost:=COPY(FURL,8,LENGTH(FURL));
FHost:=COPY(FHost,1,POS("/",FHost)-1);

//выделение запроса (GET,HEAD,POST,...)
Cmd:=COPY(FBufStr,1,POS(" ",FBufStr));
FBufStr:=COPY(FBufStr,LENGTH(Cmd),LENGTH(FBufStr));

FBufStr:=COPY(FBufStr,LENGTH("http://")+2,Length(FBufStr));
FBufStr:=COPY(FBufStr,POS("/",FBufStr)+1,LENGTH(FBufStr));

FBufStr:=Cmd+"/"+FBufStr;

FListMessage:=FUrl;
SYNCHRONIZE(UpdateList);//Обновление видимого списка запросов

FMemo3Msg:="---"+TimeToStr(NOW)+" Запрос программы "+IntToStr(FThreadUniqueID)+"----------"#13#10+FBufStr;
SYNCHRONIZE(UpdateMemo3);//Добавление в видимый список запросов/ответов

FRemoteSocket.OnDataAvailable := RemoteWSocketDataAvailable;//Укзание на процедуру приема данных от HTTP-сервера
FRemoteSocket.MultiThreaded := TRUE;
FRemoteSocket.proto:="tcp";

//Создать запрос на основе @Buffer и SizeOf(Buffer)
try
FRemoteSocket.Addr:=FHost;
FRemoteSocket.Port:="80";
except
RELEASE;//Сокет не создан, это внутренняя ошибка клиента
end;

FRemoteSocket.OnSessionConnected:=RemoteSocketConnect;//Указание на процедуры
FRemoteSocket.OnSessionClosed := RemoteSocketSessionClosed;//при CONNECT и при CLOSESESSION

//Имеем данные к отправке на HTTP сервер (находятся в FBuffer)
IF (NOT (FRemoteSocket.State=wsConnected))
then FRemoteSocket.Connect
else FRemoteSocket.Send(@FBuffer,FCount);
end;




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

Форум: "Сети";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
3-46253
Orion
2002-03-24 16:13
2002.04.15
Отображение данных из нескольких DataSet ов одновременно.


1-46356
андрей Татуков
2002-04-04 10:46
2002.04.15
RichEdit.Print зависает (бесконечный Спулинг)


4-46553
slydiman
2002-02-08 23:56
2002.04.15
C++Builder & ExcelApplication


6-46461
Vlad__
2002-01-31 15:38
2002.04.15
ICS компоненты ( сокеты )


3-46258
B_A_V
2002-03-25 09:31
2002.04.15
что выьрать: Seagate Crystal Reports или XL Report G2?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский