Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   l2top_vote своими руками [Delphi] (https://forum.antichat.xyz/showthread.php?t=195240)

Ss[x]dD 10.04.2010 22:59

l2top_vote своими руками [Delphi]
 
Вот код на получение капчи

procedure TForm1.Button1Click(Sender: TObject);
var CM: TIdCookieManager;
captcha1:TMemoryStream;
captcha2:TMemoryStream;
ID, pref: String;
begin
ID:=edit1.text;
pref:= edit2.Text;
CM:= TidCookieManager.Create(IdHTTP1);
IdHTTP1.AllowCookies:=True;
IdHTTP1.CookieManager:=CM;
IdHTTP1.HandleRedirects:=True;
captcha1:=TMemoryStream.Create;
captcha2:=TMemoryStream.Create;
idhttp1.Request.Referer:=('http://l2top.ru/vote/' + ID + '/?prefix='+pref);
idhttp1.Get('http://l2top.ru/getimg.php?47',captcha1);
captcha1.SaveToStream(captcha1);
captcha1.SaveTofile('captcha1.jpeg');
Image1.Picture.LoadFromfile('captcha1.jpeg');
Edit5.Text:= idhttp1.Request.Referer;
idhttp1.Request.Referer:=('http://l2top.ru/vote/' + ID + '/?prefix='+pref);
idhttp1.Get('http://l2top.ru/getimg.php?610',captcha2);
captcha2.SaveToStream(captcha2);
captcha2.SaveTofile('captcha2.jpeg');
Image2.Picture.LoadFromfile('captcha2.jpeg');
end;


Кто нибудь может показать, как и куда отправить эту капчу? Часа 2 искал что куда, пытался разобраться как, вобщем не получилось.

mailbrush 11.04.2010 00:13

antigate.com

JnK 11.04.2010 02:26

Открываешь страницу, где просят ввести ник и капчу,
Исходный код, находишь <form ....
и выбираешь action= .... // на какой скрипт отправляется форма
input name="..." // тут смотришь имя, которая отвечает за капчу и ник, делаешь связку и отправляешь.

P.s. и зачем плодить темы, Создал одну в ней бы и писал.

Ss[x]dD 11.04.2010 19:56

Имеется вот такая строчка html документа:

<form action="free.php" method="post"><table> <tr><th align="left"><font size="1" face="Tahoma">Ваш eMail:<br><br>Код подтверждения: <br><input type="submit" value="Получить "><th align="left"><input type="text" name="email"><p><input type="text" name="keystring"><br><th align="left"><img src="cp.php?PHPSESSID=57lgimm74385h9qi9dvrthkd47"> </table></form></font><br>

помогите правиль отправить POST запрос на сервер.

И еще, тут есть такая строчка интересная - PHPSESSID=57lgimm74385h9qi9dvrthkd47
При каждом новом запросе это значение меняется, вот хотелось бы еще сделать обработчик, чтобы допустим в memo1 грузился текст 1.html и нажав на кнопку в memo2 вывелось значение (в нашем случае - 57lgimm74385h9qi9dvrthkd47)

JnK 11.04.2010 21:11

на скрипт: free.php методом пост
Отправляй:
'email='+Edit1.text
'keystring='+Edit2.text

Edit1 - вводишь E-mail
Edit2 - Вводишь капчу

PHPSESSID - Что это такое, читаем тут.

Код:

<img src="cp.php?PHPSESSID=57lgimm74385h9qi9dvrthkd47">
В данном случаи я думаю, она используется для получения capcha и дальшельшей проверки.

Что бы получить сессию парси страницу, команды:
Pos('PHPSESSID=',Page), Copy, Delete.

Ss[x]dD 12.04.2010 20:01

Вот нашел код один, который ищет в мемо введенное слово, и выделяет его:

procedure TForm1.Button1Click(Sender: TObject);
var // Объявляем переменные
Find:string; // Искомая строка
i:integer; // Счетчик для цикла
begin
find:=Edit1.Text; // Записываем в find текст из Edit
For i:=0 to Memo1.Lines.Count-1 do // Запускаем цикл поиска строки
If Pos(FIND, Memo1.Lines.Text)<>0
Then
Begin
Memo1.SetFocus();
Memo1.SelStart:=Pos(FIND,Memo1.Lines.Text)-1;
Memo1.SelLength:=Length(FIND);
End;
end;

Есть строка : <img src="cp.php?PHPSESSID=57lgimm74385h9qi9dvrthkd47">
в едит1 вводим : PHPSESSID=
Нужно, чтобы в едит2 вышло : 57lgimm74385h9qi9dvrthkd47, т.е. до знаков ">

JnK 12.04.2010 21:58

PHP код:

  function ParserBlock(
          
Page:string;
    const 
Param1,
          
Param2:string):string;
  var
    
BeginPos,
    
EndPos:integer;
    
TempPage:string;
  
begin
    BeginPos
:=AnsiPos(Param1,Page)+length(Param1);
    
delete(Page,1,beginPos-1);
    
BeginPos:=AnsiPos(Param1,Page)+length(Param1);
    
EndPos:=AnsiPos(Param2,Page);
    
Result:=copy(page,1,EndPos-1);
  
end

Применять:
PHP код:

str:='<img src="cp.php?PHPSESSID=57lgimm74385h9qi9dvrthkd47">';
edit2.Text:=ParserBlock(str,Edit1.text,'">'); 


Ss[x]dD 12.04.2010 23:07

Вот что пришло на GET запрос:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 WebMoney Advisor
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://terabit.ru/free.php
Cookie: PHPSESSID=800fsde3g5jie4njrp6be4rs30
If-Modified-Since: Sat, 05 Sep 2009 13:42:34 GMT
If-None-Match: "1f029b-318d-c9f8c680"
Cache-Control: max-age=0

HTTP/1.x 304 Not Modified
Date: Sun, 11 Apr 2010 15:40:07 GMT
Server: Apache/2.2.3 (Red Hat)
Connection: close
Etag: "1f029b-318d-c9f8c680"

Вот что отправилось на POST:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 WebMoney Advisor
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://terabit.ru/free.php
Cookie: PHPSESSID=800fsde3g5jie4njrp6be4rs30
Content-Type: application/x-www-form-urlencoded
Content-Length: 45
email=QAZ1aAA1WsX%40YahOo.com&keystring=8k4hd


HTTP/1.x 200 OK
Date: Sun, 11 Apr 2010 15:40:15 GMT
Server: Apache/2.2.3 (Red Hat)
X-Powered-By: PHP/5.2.10
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 6886
Connection: close
Content-Type: text/html; charset=windows-1251


Вот что я пытаюсь отправить через дельфи:
procedure TForm1.Button1Click(Sender: TObject);
var
PageText: TStringList;
PostData: TStringList;
Http: TidHttp;
CM: TidCookieManager;
email, keystring: String;
begin
{Создаем объекты в памяти}
Http:=TIdHTTP.Create(Self);
PostData:=TStringList.Create;
CM:=TidCookieManager.Create(Http);

{Задаем нужные параметры}
HTTP.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 WebMoney Advisor';
HTTP.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
HTTP.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
HTTP.Request.AcceptEncoding:='gzip,deflate';
HTTP.Request.AcceptCharset:='windows-1251,utf-8;q=0.7,*;q=0.7';
HTTP.Request.Connection:='keep-alive';
HTTP.Request.Referer:='http://terabit.ru/free.php';

//А вот тут у меня судя по всему что то неправильно написано или все правильно?

HTTP.Request.Cookie:='PHPSESSID=800fsde3g5jie4njrp 6be4rs30'; //тут ID будет менятся
HTTP.Request.Content-Type:='application/x-www-form-urlencoded';


HTTP.CookieManager:=CM;
HTTP.AllowCookies:=True;
HTTP.HandleRedirects:=True;

А вот отправка запроса у меня правильная?

{2. Формируем запрос}
email:=edit1.text;
keystring:=edit2.text;
url:=edit6.text;
PostData.Add('email&keystring');

PageText.Text:=HTTP.Post('url', PostData);

JnK 12.04.2010 23:41

Цитата:

Сообщение от Ss[x]dD
....
{2. Формируем запрос}
email:=edit1.text;
keystring:=edit2.text;
url:=edit6.text;
PostData.Add('email&keystring');

PageText.Text:=HTTP.Post('url', PostData);

Тоесть Поле на сайте = текст.
PHP код:

 PostData.Add('email='+Edit1.text);
 
PostData.Add('keystring='+Edit2.Text); 

то что в апострафах, одинарная ковычка (') считается текстом, поэтому убери вокруг Url.
PHP код:

PageText.Text:=HTTP.Post(edit6.textPostData);
//или
PageText.Text:=HTTP.Post(urlPostData); 

И в самом конце, чаще после перед end припиши ниже указаный код.
PHP код:

// Не забываем освобождать.
 
PostData.Free

P.s. Правильность заполнения запроса не смотрел. Голова не варит, а там еще в добавок много буковок.

Ss[x]dD 13.04.2010 00:05

Ошибку выдает :(
HTTP.Request.Cookie:='PHPSESSID=800fsde3g5jie4njrp 6be4rs30';

Вот с этим куксом как поступать? Я его в url добавил.


Время: 05:37