Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование прокси в WinSock 
:(
    Опции темы
shinobi2222
Дата 14.1.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 14.1.2009

Репутация: нет
Всего: нет



Код
{$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, объясните пожалуйста как в данном коде сделать поддержку прокси???
PM MAIL   Вверх
Virtuals
Дата 15.1.2009, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 2
Всего: 11



Код


Server.sin_port:=htons(портпрокси);
  Server.sin_addr:=LookupName('адреспрокси');
  if Connect(Sock, Server, SizeOf(Server)) = 0 then
    begin
      SendString('connect www.lol.ru:80'#13#10);
      SendString(#13#10);
дождатся соединения

      SendString('GET / HTTP/1.1'#13#10);
      SendString('Host: www.lol.ru'#13#10);
      SendString('Accept: text.............


 smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.