![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Соединение через прокси
peppo © (2005-04-11 22:16:00)HTTP.
Насколько я понимаю, для этого достаточно выполнить connect() с прокси-сервером, затем отправлять ему HTTP-запросы, содержащие полный путь к интересующему ресурсу.
Так вот не работает.
Как это делается?
Например:
'GET http://www.yandex.ru/black.htmlHTTP/1.0'#13#10+
'Host: yandex.ru'#13#10+
'Accept: */*'#13#10+
'Http-Referer: www.yandex.ru'#13#10+
'User-Agent: Internet Explorer 6.0'#13#10+
'Proxy-Connection: close'#13#10#13#10;
На что он мне отвечает:
HTTP/1.1 404 Not Found
Date: Sun, 10 Apr 2005 17:34:17 GMT
Server: Apache/1.3.27 (Unix) mod_throttle/3.1.2 mod_auth_pgsql/0.9.12 PHP/3.0.18-i18n-ja-3 mod_ruby/0.9.7 Ruby/1.6.4 mod_python/2.7.8 Python/2.2.1 mod_perl/1.26 DAV/1.0.3
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /black.html was not found on this server.<P>
<HR>
<ADDRESS>Apache/1.3.27 Server at support-web.avid.jp Port 80</ADDRESS>
</BODY></HTML>
Очевидно, что ищет он /black.html у себя.
Текст программы:
var
S: TSocket;
vSockAddr: TSockAddr;
vWSAData : TWSAData;
buf: array[0..1023] of char;;
S := socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
if S= INVALID_SOCKET then begin
Messagebox(0,'INVALID_SOCKET', 'Error',0);
Halt(1);
end;
FillChar(vSockAddr, SizeOf(TSockAddr),0);
vSockAddr.sin_family :=AF_INET;
vSockAddr.sin_port:=htons(StrToInt('80'));
vSockAddr.sin_addr.S_addr:=inet_addr(Pchar('218.45.229.101')); //прокси-сервер
if connect(S,vSockAddr,SizeOf(TSockAddr)) = 0 {SOCKET_ERROR} then
begin
buf:=
'GET http://www.yandex.ru/black.htmlHTTP/1.0'#13#10+
...
'Proxy-Connection: close'#13#10#13#10;
send(s,buf,500,0); //1162
recv(s,buf,1024,0);
...
end
else showmessage('error '+inttostr(WSAGetLastError() ));
closesocket(s);
Sha (2005-04-13 14:48:00) [1]> появилось предположение, что хост этот перестал быть прокси
Правильное предположение.
peppo (2005-04-12 20:39:00) [2]Порт - правильно.
Мне он тоже не нравится, появилось предположение, что хост этот перестал быть прокси... а из-за № отвечает как браузеру...
Надо проверить.
dr Tr0jan (2005-04-12 14:32:00) [3]А порт у прокси правильный указал? Че-то мне 80 не очень нравится.