Показать сообщение отдельно
  #1  
Старый 14.01.2009, 19:55
shinobi2 shinobi2 вне форума
Прохожий
 
Регистрация: 22.11.2008
Сообщения: 4
Репутация: 10
По умолчанию Использование прокси в WinSock

Код:
{$APPTYPE CONSOLE}

uses
  Windows, SysUtils, WinSock;

var
  WSA: TWSAData;
  Sock: TSocket;
  Server: TSockAddr;

function LookupName(host: string): TInAddr;
var
  HostEnt: PHostEnt;
  InAddr: TInAddr;
begin
  HostEnt := gethostbyname(PChar(host));
  FillChar(InAddr, SizeOf(InAddr), 0);
  if HostEnt <> nil then
    begin
      with InAddr, HostEnt^ do
        begin
          S_un_b.s_b1 := h_addr^[0];
          S_un_b.s_b2 := h_addr^[1];
          S_un_b.s_b3 := h_addr^[2];
          S_un_b.s_b4 := h_addr^[3];
        end;
    end;
  Result := InAddr;
end;

procedure SendString(s: string);
var
  Buffer: array[0..255] of char;
begin
  StrPCopy(Buffer, s);
  Send(Sock, Buffer, length(s), 0);
end;

var
  Buffer: array[0..255] of char;
  Bufflen, Recved: SmallInt;

begin
  WSAStartup(MAKEWORD(1,0), WSA);
  Sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  ZeroMemory(@Server,SizeOf(Server));
  Server.sin_family:=AF_INET;
  Server.sin_port:=htons(80);
  Server.sin_addr:=LookupName('www.lol.ru');
  if Connect(Sock, Server, SizeOf(Server)) = 0 then
    begin
      SendString('GET / HTTP/1.1'#13#10);
      SendString('Host: www.lol.ru'#13#10);
      SendString('Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'#13#10);
      SendString('Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'#13#10);
      SendString('Accept-Encoding: gzip,deflate'#13#10);
      SendString('Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'#13#10);
      SendString(#13#10);
    end;
  repeat
    Bufflen := SizeOf(Buffer);
    Recved := Recv(Sock, Buffer, Bufflen, 0);
    write(Buffer);
  until Recved = 0;
  CloseSocket(Sock);
  WSACleanup;
  readln;
end.

Вот код GET запроса на сайт через WinSock, объясните пожалуйста как в данном коде сделать поддержку прокси???
Ответить с цитированием