Помогите с Дельфи!

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by M@@$, 9 Jun 2007.

  1. M@@$

    M@@$ Elder - Старейшина

    Joined:
    12 Oct 2006
    Messages:
    60
    Likes Received:
    23
    Reputations:
    -6
    Народ кто нормальна шарит в дельфи?...помогите мне написать программу...начал недавно!,..почти нехе...не знаю!,.
    Так что нада!...===> Мне нужна такая прога чтобы она открылавала опредиленую сылку с разных проксей...чтобы я вел там www.111.ru и чтобы она ее открылава с одного прокси, закрывала а потом занова с другой и так чтобы раз 100....
    Зарание спасиба! Жду ответа!
     
  2. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Дык тебе нужна обычная простенькая прога. которая берет базу проксей и тупо переходит по ссылке.
    дык проще некуда.
    1) строй движек базы прокси
    2) гдето на форуме валяется пой код - там функция запроса страницы
    3) строй Http запрос и шли его через функцию,

    всё очень просто. :)
     
  3. [krot]

    [krot] Elder - Старейшина

    Joined:
    24 May 2007
    Messages:
    26
    Likes Received:
    5
    Reputations:
    0
    slesh
    Ну ты даешь...чувак же написал, что плохо шарит в делфи...
    Заипется он это делать сам, имхо

    M@@$
    Страничку получать можно с помощью компоненты webbrowser
    Тут написано как можно создать свой простенький браузер
    _http://www.codenet.ru/progr/delphi/stat/browser.php
    Потом, после события DocumentComplete (когда страничка уже полностью загрузилась)
    снова загружаешься по той же ссылке, но меняешь прокси(соксы)...
    Как работать через прокси я не в курсах, никогда не сталкивался, но я думаю не очень сложно...
    Подскажите кто знаком с этим!

    P.S.Поидеи сделать не сложно, при желании можно отключить и графику в браузере, чтоб меньше трафика грузил, но тогда скорее всего счетчики работать не будут, потому как они реагируют только на загрузку картинки самого счетчика, если я не ошибаюсь. А тебе я как понял нужна программа накрутчик?
     
  4. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 [krot] НУ дык если инет браузер - это жестоко, т.к. траф идет хороший, да и скорость не очень. Winsock и всю будет рульно. Сори за юзанье WS2 (просто тупая привычка со времен написания снифера) Вот кусок кода:
    Code:
    uses winsock2;
    var
    WSAData:TWSAData;
    socket_id:array[1..100] of dword;
    tout:array[1..100] of boolean;
    
    
    procedure timeouts(wnd:hwnd;uMsg:UINT;id:UINT;dwtime:dword);stdcall;
    begin
    tout[id]:=true;
    closesocket(socket_id[id]);
    end;
    
    
    function send_packs(id:dword;ip:string; port:word; send_buf:string; var recv_buf:string):integer;
    var
    SockAddrIn: TSockAddrIn;
    tmp_buf:array[1..1024] of char;
    len:longint;
    begin
    result:=-10;
    socket_id[id]:=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if socket_id[id]=WINDOWS.INVALID_HANDLE_VALUE then exit;
    SockAddrIn.sin_family := AF_INET;
    SockAddrIn.sin_port := htons(port);
    SockAddrIn.sin_addr.s_addr := inet_addr(Pansichar(ip));
    result:=-20;
    if Connect(socket_id[id], @SockAddrIn, SizeOf(SockAddrIn))<>0 then exit;
    tout[id]:=false;
    windows.SetTimer(form1.Handle,id,timeout,@timeouts);
    send(socket_id[id],send_buf[1],length(send_buf),0);
    recv_buf:='';
    repeat
    len:=recv(socket_id[id],tmp_buf,1024,0);
    recv_buf:=recv_buf+copy(tmp_buf,1,len);
    until len<=0;
    killtimer(form1.Handle,id);
    result:=-30;
    if tout[id]=true then exit;
    result:=length(recv_buf);
    closesocket(socket_id[id]);
    end;
    -.-.-.-.-.-.-.-
    procedure hz;
    var
    buf_send,buf_recv:string;
    proxy_port:word;
    proxy_ip:string;
    
    begin
    
    if WSAStartup($202, WSAData)=-1 then
     begin
      memolog.Lines.Add('Ошибка WSAStarup');
      exit;
     end;
    
    buf_send:=
       'GET http://kuk.ru/login.php HTTP/1.0'+#13#10+
       'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*'+#13#10+
       'Accept-Language: ru'+#13#10+
       'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01705))'+#13#10+
       'Host: kuku.ru'+#13#10+
       'Proxy-Connection: close'+#13#10#13#10;
    
    case send_packs(id,proxy_ip,proxy_port,buf_send,buf_recv) of
    -10:begin
         form1.memolog.Lines.Add('ID: '+inttostr(id)+' Ошибка создания сокета');
        end;
    -20:begin
         form1.memolog.Lines.Add('ID: '+inttostr(id)+' '+proxy_ip+' > дохлый');
         proxy[bp].bad:=true;
         end;
    -30:begin
         if length(buf_recv)<1000 then begin
         proxy[bp].bad:=true;
         form1.memolog.Lines.Add('ID: '+inttostr(id)+' '+proxy_ip+' > TIME OUT');
        end;
        end;
      0:begin
         proxy[bp].bad:=true;
         form1.MemoLog.Lines.Add('ID: '+inttostr(id)+' '+proxy_ip+' > Ошибка прокси');
        end;
    end;
    
    end;
    
    Код простой. Подогнан специально под многопаточность.
    id - номер потока
    максимум потоков - 100
    proxy_ip - ip адресс HTTP прокси сервера
    proxy_port - порт прокси сервера.
     
    1 person likes this.
  5. [krot]

    [krot] Elder - Старейшина

    Joined:
    24 May 2007
    Messages:
    26
    Likes Received:
    5
    Reputations:
    0
    slesh
    А ты уверен, что счетчики будут регистрировать такие запросы, как я понял ему это надо для имитации посещаемости сайта (уников), для банеров и т.п. А так ты будешь получать только хтмл код, или я не прав?
    M@@$ если я не прав, поправь...

    А так конечно лучше так, трафа будет намного меньше жрать...
     
  6. А®ТеS

    А®ТеS Active Member

    Joined:
    25 Nov 2006
    Messages:
    198
    Likes Received:
    193
    Reputations:
    41
    ИМХО на WinSock'e такое делать - мазахизм и самоубийство. Предлагаю решить проблему с помощью WinInet, код для отправки через прокси будет примерно такой:
    Code:
    Uses
    ......blablabla....., WININET;
    
    
    const
    Server_Addr: PChar= 'LocalHost';
    ScriptName: PChar= 'engine.php';
    hdrs: Pchar= 'Content-Type: application/x-www-form-urlencoded';
    
    var
      hInet, hConnect, hRequest: hInternet;
      pRequest: PChar;
      sRequest: string;
    
    hInet := InternetOpen('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru)', INTERNET_OPEN_TYPE_PROXY, 'http=http://localhost:8080', nil, 0);
    hConnect := InternetConnect(hInet, Server_Addr, INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 1);
    hRequest := HttpOpenRequest(hConnect, 'POST', ScriptName, nil, nil, nil, 0, 1);
    sRequest := 'Body=OK';
    pRequest := PChar(sRequest);
    HttpSendRequest(hRequest, hdrs, StrLen(hdrs), pRequest, StrLen(pRequest));
    InternetCloseHandle(hRequest);
    InternetCloseHandle(hConnect);
    InternetCloseHandle(hInet);
    
     
    #6 А®ТеS, 10 Jun 2007
    Last edited: 10 Jun 2007
  7. А®ТеS

    А®ТеS Active Member

    Joined:
    25 Nov 2006
    Messages:
    198
    Likes Received:
    193
    Reputations:
    41
    Cтатическая HTML страница конечно не будет (если не счетчик не встроек в сервер, но это уже теория), а скрипт зафискирует и вернет HTML код страницы про которые ты и говорил.
     
  8. M@@$

    M@@$ Elder - Старейшина

    Joined:
    12 Oct 2006
    Messages:
    60
    Likes Received:
    23
    Reputations:
    -6
    slesh, [krot] , А®ТеS.
    По вервых ребя огромное спасиба за то что пытаитесь помоч! Очень ценю!...
    Ребята...мне кароче нужна чтобы просто открывались странички типа накрутки!...
    Я полный нуб! в программировании...я смогу толька скрипт впихнуть в дельфи и скомплить и все))..Так что если вам не в затруднение зделайте мне эту хрень...или код скиньте!,..И еше мне нужна чтобы я прокси сам закидывал и http адрис сам писал...Это возможна?