Народ кто нормальна шарит в дельфи?...помогите мне написать программу...начал недавно!,..почти нехе...не знаю!,. Так что нада!...===> Мне нужна такая прога чтобы она открылавала опредиленую сылку с разных проксей...чтобы я вел там www.111.ru и чтобы она ее открылава с одного прокси, закрывала а потом занова с другой и так чтобы раз 100.... Зарание спасиба! Жду ответа!
Дык тебе нужна обычная простенькая прога. которая берет базу проксей и тупо переходит по ссылке. дык проще некуда. 1) строй движек базы прокси 2) гдето на форуме валяется пой код - там функция запроса страницы 3) строй Http запрос и шли его через функцию, всё очень просто.
slesh Ну ты даешь...чувак же написал, что плохо шарит в делфи... Заипется он это делать сам, имхо M@@$ Страничку получать можно с помощью компоненты webbrowser Тут написано как можно создать свой простенький браузер _http://www.codenet.ru/progr/delphi/stat/browser.php Потом, после события DocumentComplete (когда страничка уже полностью загрузилась) снова загружаешься по той же ссылке, но меняешь прокси(соксы)... Как работать через прокси я не в курсах, никогда не сталкивался, но я думаю не очень сложно... Подскажите кто знаком с этим! P.S.Поидеи сделать не сложно, при желании можно отключить и графику в браузере, чтоб меньше трафика грузил, но тогда скорее всего счетчики работать не будут, потому как они реагируют только на загрузку картинки самого счетчика, если я не ошибаюсь. А тебе я как понял нужна программа накрутчик?
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 - порт прокси сервера.
slesh А ты уверен, что счетчики будут регистрировать такие запросы, как я понял ему это надо для имитации посещаемости сайта (уников), для банеров и т.п. А так ты будешь получать только хтмл код, или я не прав? M@@$ если я не прав, поправь... А так конечно лучше так, трафа будет намного меньше жрать...
ИМХО на 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);
Cтатическая HTML страница конечно не будет (если не счетчик не встроек в сервер, но это уже теория), а скрипт зафискирует и вернет HTML код страницы про которые ты и говорил.
slesh, [krot] , А®ТеS. По вервых ребя огромное спасиба за то что пытаитесь помоч! Очень ценю!... Ребята...мне кароче нужна чтобы просто открывались странички типа накрутки!... Я полный нуб! в программировании...я смогу толька скрипт впихнуть в дельфи и скомплить и все))..Так что если вам не в затруднение зделайте мне эту хрень...или код скиньте!,..И еше мне нужна чтобы я прокси сам закидывал и http адрис сам писал...Это возможна?