PDA

Просмотр полной версии : DELPHI: POST MSG BOMBER


Oleg-vp
28.08.2009, 22:45
Всем привет!
Нуждаюсь в вашем совете.
Задача у меня такая: надо отправлять пост запросы с разных IP для интернет голосования =)
Прогу написал, вот ее кусок:


procedure TForm1.Button1Click(Sender: TObject);
var
server:String;
port:integer;
buf:string;
res:string;
good,i:integer;
begin
Memo2.Lines.Clear;
http.ReadTimeout:=1000;
http.ConnectTimeout:=1000;
good:=0;

if not Check1.Checked then
begin
http.ProxyParams.ProxyServer:='';
http.ProxyParams.Proxyport:=0;
try
Memo2.Lines.Add(UTF8toAnsi(http.Post(LabeledEdit1. Text,Params.Lines)));
except end;
Caption:=SysErrorMessage(GetLastError);
Exit;
end;

for i:=0 to Memo.Lines.Count-1 do
begin
buf:=Memo.Lines.Strings[i];

server:=Copy(Buf,1,Pos(':',Buf)-1);
delete(buf,1,Pos(':',Buf));
port:=StrToInt(Buf);

http.ProxyParams.ProxyServer:=Server;
http.ProxyParams.Proxyport:=port;
try
http.Post(LabeledEdit1.Text,Params.Lines);
except end;

res:=SysErrorMessage(GetLastError);
if res='Операция успешно завершена' then
begin
inc(good);
res:='ok';
end else res:='Error#'+IntToStr(GetLastError);

Caption:=IntToStr(i+1)+' из '+IntToStr(Memo.Lines.Count)+' GOOD='+IntToStr(good);
memo2.Lines.Add(Server+':'+IntToStr(port)+' - '+res);

Application.ProcessMessages;
if Abort then
begin
abort:=false;
Exit;
end;
end;


end;


Код самый обычный, берется из списка проксей адрес и порт, прописывается в TidHTTP и стреляем POST запрос.

ЕСТЬ ЛИ специализированные на этом проги или всё таки придется отлаживать свою прогу? Просто у меня часто возникают ошибки #10054 и #10057 и не очень понятноЦ: или это мертвые прокси или что-то не настроил в комоненте. Примерно на 100 адресов удвчно проходит только 10-20%

Oleg-vp
28.08.2009, 23:16
Еще заметил такую шнягу, запросы идут на проксики.
Проходят через раз, бывает проскакивает ошибка 10057 , а потом остальная половина адресов резко проскакивает с ошибкой 10054 - наверняка , что-то у меня

Oleg-vp
31.08.2009, 11:20
проблема решена весьма "брутальным" способом =)
Создаем IdHTTP , ставим опции , посылаем пост запрос, сразу убиваем , чтобы не вернул геморой в виде ошибок ))) и.т.д для нового запроса опять создаем :rolleyes:

POS_troi
31.08.2009, 12:02
TopGen

Oleg-vp
05.09.2009, 22:16
Заузал TopGen - 300 кликов в сутки... мало =(
Кряков нормальных к нему не нашел, нашел только один, который сбрасывает счетчик, но каждый раз нужен REBOOT.
Может большинство прокси-серверов "отвергают" прогу, т.к. это не браузер :confused: Тогда подскажите как с idHttp "закосить" под браузер ? :eek:

ZdezBilYa
05.09.2009, 23:19
Тогда подскажите как с idHttp "закосить" под браузер ? :eek:
idHTTP.Request.UserAgent:= /нужное опознавание/

Oleg-vp
06.09.2009, 22:09
User-Agent - это эдинственное что нужно для распознавания или есть еще что либо ?

HakaR
07.09.2009, 10:19
User-Agent - это эдинственное что нужно для распознавания или есть еще что либо ?

Вроде больше ничего не надо...

idHTTP.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.2) Gecko/20090729 MRA 5.5 (build 02842) Firefox/3.5.2 sputnik 2.0.1.41';