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

Вниз

как пакеты через прокси пустить   Найти похожие ветки 

 
Succumb   (2006-10-14 17:16) [0]

Привет. Есть прога, которая через TTcpClient посылает пакеты, и собственно их принемает %) Как заставить прогу, делать это через прокси? тоесть каким компонентом, каким оператором, ф-цией и т.д.?
http прокся, без авторизации(если это важно), пакеты в проге через 80ый порт идут.


 
Орион ©   (2006-10-14 20:41) [1]

> [0] Succumb   (14.10.06 17:16)

по какому протоколу?
Если не http - забудь, т.к. прокся у тебя http.


 
Орион ©   (2006-10-14 21:03) [2]

"Как заставить прогу, делать это..."
Гы-гы)) Я сеня в особенном настроении))


 
Succumb   (2006-10-14 21:07) [3]

Именно по хттп протоколу.
Уху, весело ;)


 
Орион ©   (2006-10-14 21:09) [4]

> [3] Succumb   (14.10.06 21:07)

Тогда все просто. Коннекти свой TTCPClient на хост/порт прокси и работай с ним.


 
Орион ©   (2006-10-14 21:12) [5]

> [3] Succumb   (14.10.06 21:07)

т.е. например ты хочешь запросить главную страничку Гугла:
- формируешь запрос, с полем "Host: google.ru"
- коннектишся на порт 80 сервера google.ru
- передаешь запрос серверу, получаешь ответ.

Работа через прокси:
- формируешь запрос, с полем "Host: google.ru"
- коннектишся на порт и хост прокси-сервера
- передаешь запрос серверу, получаешь ответ.


 
Eraser ©   (2006-10-14 23:21) [6]

> [0] Succumb   (14.10.06 17:16)

вопрос как-то сумбурно задан. Я так понял нужно написать http-клиент работающий через прокси? он уже есть - TIdHTTP. Он имеет встроенные средства для работы с прокси.


 
SergP ©   (2006-10-15 10:38) [7]

> [3] Succumb   (14.10.06 21:07)
> Именно по хттп протоколу.
> Уху, весело ;)


Ну с этого нужно было и начинать, что по хттп-протоколу, иначе не получится.
Да и зачем создавать одинаковые ветки:
http://delphimaster.net/view/2-1160771283/

?

А по сабжу: конектишься не к требуемому серверу, а к прокси. Но заголовок хттп-запроса меняешь в соответствии с требованиями (заголовок хттп-запроса при прямом конекте отличается от такого же заголовка при конекте через прокси)


 
Succumb   (2006-10-16 01:54) [8]

Орион ©   (14.10.06 21:12) [5]
неполучается =/
делаю примерно так:

var
url := "GET /somepage"+IntToStr(i)+".htm HTTP/1.1" + CRLF + "Host: somehost.ru" CRLF + "Connection: close" + CRLF;

  remotehost := "123.123.123.123"; //proxy
  remoteport := "80"; //порт прокси
  Connect();
...
  SendLn(url);


Выдаёт:

Server Error

The following error occurred:

[code=BAD_URL] An invalid URL was detected. The appliance cannot serve the request as entered.
------------------------------------
Please contact the administrator.  

Прокси 100% рабочая. Я что-то не так делаю?

SergP ©   (15.10.06 10:38) [7]
Сорри, просто я подумал, что этото топик более подходит под тематику вопроса.
> (заголовок хттп-запроса при прямом конекте отличается от
> такого же заголовка при конекте через прокси)

подскажи пожалуйсто, как он должен выглядить?


 
Ketmar ©   (2006-10-16 02:07) [9]

в GET для прокси рекомендуют прописывать полный URL.


 
Succumb   (2006-10-16 02:10) [10]


> Я так понял нужно написать http-клиент работающий через
> прокси? он уже есть - TIdHTTP. Он имеет встроенные средства
> для работы с прокси.


Извени, не смог найти его в палитре делфи, не подскажешь где он находится?


 
Succumb   (2006-10-16 02:11) [11]

Ketmar ©   (16.10.06 02:07) [9]
О, пасибо. Оно заработало %)


 
Ketmar ©   (2006-10-16 02:15) [12]

кстати, обычно достаточно #10, а не CRLF. хотя CRLF надёжней. %-)


 
Succumb   (2006-10-16 02:18) [13]

Ketmar ©   (16.10.06 02:15) [12]
учту ;)


 
Ketmar ©   (2006-10-16 02:21) [14]

ещё можно вместо "connection: close" писать "HTTP/1.0". но некоторые сервера обижаются. но очень некоторые. а лучше -- и то, и то. и ещё "proxy-connection: close".


 
umbra ©   (2006-10-16 11:38) [15]


> Извени, не смог найти его в палитре делфи, не подскажешь
> где он находится?
>

Для Д7 и больше - вкладка Indy Clients


 
SergP ©   (2006-10-16 17:21) [16]

лучше всего взять браузер и законектиться сначала без прокси, а потом через прокси, открыть любой сайт, просмотреть снифером чего он передает и увидеть разницу в запросах с прокси и без прокси...
Можно конечноьи почитать что-нить, но в любом случае посмотреть на наглядный пример не помешает.


 
Ketmar ©   (2006-10-16 18:12) [17]

>[16] SergP(c) 16-Oct-2006, 17:21
угу. я так за Оперой наблюдал. сколько мусора она передаёт, оказывается! %-)


 
Пусик ©   (2006-10-16 18:47) [18]


> Ну с этого нужно было и начинать, что по хттп-протоколу,
>  иначе не получится.
</
> Если не http - забудь, т.к. прокся у тебя http.

I>

Протокол не имеет значения, если прокси поддерживает метод connect.


 
umbra ©   (2006-10-16 19:33) [19]

2 Пусик ©   (16.10.06 18:47) [18]

и этот метод разрешен сисадмином


 
Пусик ©   (2006-10-16 20:05) [20]


> и этот метод разрешен сисадмином


Еще стоит добавить, если админом разрешен доступ в интенет;)


 
DVM ©   (2006-10-17 15:34) [21]

     FRequest := "GET http://" + FHost + ":" + inttostr(FPort) + FPath + " HTTP/" + FHTTPVersion + #13#10 +
                 "Accept: */*" + #13#10 +
                 "Pragma: no-cache" + #13#10 +
                 "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Win32)" + #13#10 +
                 "Host: " + FHost + ":" + inttostr(FPort) + #13#10;
     if FUserName <> "" then FRequest := FRequest + "Authorization: Basic " + EncodeBase64(FUserName + ":" + FPassword) + #13#10;
     if FProxyUserName <> "" then FRequest := FRequest + "Proxy-Authorization: Basic " + EncodeBase64(FProxyUserName + ":" + FProxyPassword) + #13#10;
     FRequest := FRequest + "Connection: Keep-Alive" + #13#10#13#10;
     FAddr.sin_addr.s_addr := inet_addr(PChar(GetIPAddress(FProxyHost)));
     FAddr.sin_port := htons(FProxyPort);



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

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

Наверх





Память: 0.5 MB
Время: 0.047 c
15-1173523671
PZ
2007-03-10 13:47
2007.04.01
Соответствие С++ и Delphi


15-1173181338
novill
2007-03-06 14:42
2007.04.01
Кто пользуется Emule? Поделитесь какие у вас скорости скачивания


15-1173562848
Real
2007-03-11 00:40
2007.04.01
Разводилово ли? - http://www.videofile.com.ua


2-1173103378
djnz
2007-03-05 17:02
2007.04.01
подключится к firebird из delphi


11-1152408034
Scrage
2006-07-09 05:20
2007.04.01
KOL и MCK





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский