вот написал такой пост запрос. Кинул на Форму 2 Edit-a, 2Button, 1memo, IdHTTP1, IdCookieManager1...Ну и собственно первой кнопке дал пост запрос, а второй Close; Написал код так: Code: procedure TForm1.Button1Click(Sender: TObject); var Http : TidHttp; CM : TidCookieManager; Data : TStringList; StrPage, UserID, UserName : String; i : integer; begin try Http := TIdHTTP.Create(Self); Data := TStringList.Create; CM := TidCookieManager.Create(Http); Http.AllowCookies := true; Http.CookieManager := CM; Http.HandleRedirects := true; Http.Request.Host:='login.vk.com'; Http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10'; 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.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7'; Http.Request.Referer:='http://vkontakte.ru/'; Data.Add('login=login'); Data.Add('email=' + Edit1.Text); Data.Add('pass=' + Edit2.Text); StrPage := Http.Post('http://login.vk.com/?act=login', Data); finally Data.Free; CM.Free; Http.Free; end; if Pos('<title>В Контакте | Вход</title>',StrPage) <> 0 then ShowMessage('Авторизация провалилась') else ShowMessage('Авторизация прошла успешно'); Memo1.Lines.Text := StrPage; end; Когда нажимаю button пишет "Авторизация прошла успешно"....т.е. не находит код: Code: <title>В Контакте | Вход</title> пробовал еще с кодом: Code: >Такой почтовый адрес не зарегистрирован, либо пароль неверный.</div> Что то я сам запутался с этими запросами.....правильно ли я его переделал подскажите ? Вот код анализатора...: Code: http://vkontakte.ru/login.php POST /login.php HTTP/1.1 Host: vkontakte.ru User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 MRA 5.4 (build 02647) Firefox/3.5.5 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 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With: XMLHttpRequest Referer: http://vkontakte.ru/ Content-Length: 18 Cookie: remixlang=0; remixchk=5; remixautobookmark=30; remixclosed_tabs=0; remixgroup_closed_tabs=0; remixfilters=8191; remixdeffriendgroups=164; remixnews_privacy_filter=0; remixnews_types=2147478270; remixclosed_tabs=6; remixref=1; remixnews_privacy_filter=0; remixgroup_closed_tabs=0; audio_vol=80; remixsid=nonenone Pragma: no-cache Cache-Control: no-cache op=a_login_attempt HTTP/1.x 200 OK Server: nginx/0.7.59 Date: Wed, 25 Nov 2009 10:30:11 GMT Content-Type: text/html; charset=windows-1251 Connection: keep-alive X-Powered-By: PHP/5.2.6-1+lenny3 Pragma: no-cache Cache-Control: no-store Vary: Accept-Encoding Content-Length: 7 ---------------------------------------------------------- http://login.vk.com/?act=login POST /?act=login HTTP/1.1 Host: login.vk.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.5) Gecko/20091102 MRA 5.4 (build 02647) Firefox/3.5.5 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://vkontakte.ru/ Cookie: remixlang=0; remixchk=5; remixsid=d0295 Content-Type: application/x-www-form-urlencoded Content-Length: 62 email=lol%40mail.ru&pass=715&expire=&vk= HTTP/1.x 200 OK Server: nginx/0.7.59 Date: Wed, 25 Nov 2009 10:30:11 GMT Content-Type: text/html; charset=windows-1251 Connection: keep-alive X-Powered-By: PHP/5.2.6-1+lenny3 Pragma: no-cache Cache-Control: no-store P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT" Set-Cookie: l=13262199; expires=Sat, 20-Nov-2010 22:45:10 GMT; path=/; domain=login.vk.com Set-Cookie: p=73bf60d54f67; expires=Sat, 27-Nov-2010 17:03:12 GMT; path=/; domain=login.vk.com Content-Encoding: gzip Vary: Accept-Encoding Content-Length: 339
Попробовал с тегом: Code: if Pos('<span class="ncc"><a href="/reg0">',StrPage) <> 0 then Пишет Авторизация прошла успешно, а в Memo кидает код: Code: <html> <head> <meta http-equiv='content-type' content='text/html; charset=windows-1251' /> </head> <body onload="document.getElementById('l').submit();"> <form id='l' method='post' action='http://vkontakte.ru/login.php'> <input type='hidden' name='op' id='op' value='slogin' /> <input type='hidden' name='redirect' id='redirect' value='1' /> <input type='hidden' name='expire' id='expire' value='0' /> <input type='hidden' name='to' id='to' value='' /> <input type='hidden' name='s' id='s' value='6c012499a0ce8cc7b319f4da3395' /> </form> </body> </html> Подскажите что бы он мог означать?
Проверить условие правильности пароля можно по ссылке. К примеру, если авторизация прошла успешно - ссылка должна выглядеть как http://vkontakte.ru/profile.php (или id...). Если авторизация провалилась, ссылка будет такой: http://login.vk.com/?act=login.
знать бы еще как это сделать в посте....я только сегодня взялся за него.... моно пример? тупой от руки хотя бы...
Хм, сам POST не знаю... Может, проверить через Referer? Почитай про HTTP_HOST... Синтаксиса не знаю, опишу по-русски. Если HTTP_HOST (он же текущий адрес) http://vkontakte.ru/profile.php или HTTP_HOST = http://vkontakte.ru/id* тогда авторизация успешна, иначе авторизация не удалась.
Если ты используешь indy, тогда проще так: Code: procedure TForm1.Button1Click(Sender: TObject); var param:TStringList; p:string; begin param:=TStringList.Create; try param.Add('act=login'); param.Add('success_url='); param.Add('fail_url='); param.Add('try_to_login=1'); param.Add('to='); param.Add('vk='); param.Add('email=адрес'); param.Add('pass=пароль'); param.Add('expire='); p:=IdHTTP1.Post('http://vkontakte.ru/login.php',param); finally param.Free; end; end; Проверять можно как и ты: Code: if Pos('<title>В Контакте | Вход</title>',p) <> 0 then ShowMessage('Авторизация провалилась') else ShowMessage('Авторизация прошла успешно');
Говорю же) я только сегодня взялся за это дело, и очень хочу научиться с этим, т.к. хочется сделать ВКИнвайтер да и знать как работать с пост запросами....а в TWebBrowser в моей теме .... я так понял через него не пригласить никого хотя мб как то и моно....но никто не помог..и вот я решился на Post Запросы, т.к. через них я думаю можно сделать VKinviter...но практикант я начинающий повторюсь))) Про сниф...к статей я ей и пользуюсь(Mazzil'oй) я же скинул все вроде как нужные запросы....ну а толком я и не понял....что куда....читал это: http://parsing-and-i.blogspot.com/2009_05_01_archive.html я кукисами? :O какими именно?) ааам.....что то многова то это меня уже не очень радует((( а каких 3? tw1ns Конечно же инди) спасибо попробую)) только не понял некоторые значения... Code: param.Add('act=login'); // это типо блок Login? param.Add('success_url='); // совершенная страница?(та на которую мы переходим? или я туплю?) param.Add('fail_url='); // плохая страница? в каком смысле? param.Add('try_to_login=1'); // это типо возращает к логину? или нет? param.Add('to='); // что за to? param.Add('vk='); // что за vk? param.Add('email=адрес'); // мейл param.Add('pass=пароль'); // пароль param.Add('expire='); // что это? непонятно( p:=IdHTTP1.Post('http://vkontakte.ru/login.php',param); // собственно страница авторизации? Ответьте пожалуйста....я вас прошу) Если кто нить сможет дать пару уроков по авторизации на каких нить простеньких сайтах через ТВ например прошу стукнуть... пять69-62три-91три...заранее спасибо если кто то откликнится... З.Ы. спасибо всем собственно) я пробовал авторизовываться на LiveJournal.com чуток разобрался и даже получилось) но не до конца понял что к чему...наверное.... а вот ВК, что то себя очень защищает только я не вижу смысла) ко мне 200 друзей в день со спамом лезут...выводит однако) ну, а не было бы такой защиты - 500 лезло) большой разницы не вижу..хотя дают зарабатывать Invitus'y... Помогите бедному студенту...)
Есть такая программа как HttpAnalyzer... которая показывает что и куда отправляется и принимается...я пользуюсь её.... Можно конешно как писал Пуховой пользоваться TamperDat'ой(плагин для Mozilla). Заходишь на страницу авторизации http://vkontakte.ru/index.php (именно на эту страницу, а не на http://login.vk.com/?act=login как писал ты, т.к. по ней идет редирект на страницу после неправильного воода данных). Включаем HttpAnalyzer и посылаем данные. Видим следующее: Code: act=login success_url= fail_url= try_to_login=1 //кол-во попыток авторизации to= vk= email=адрес pass=пароль expire= Вот эти данные нужно посылать чтоб авторизироваться. Насчет посыла 3 POST запросов.... сегодня посмотрю...но то, что я написал автору работает... авторизация проходит. Могу предоставить лог.
HTTPAnylizator - это который в IE ставиться при установке его?! у меня он стоит только, что то я не врубился в него, а насчет мозилы...ну у меня стоит плагин я же скинул пост запросы...которые в мазиле... Мб кто нить даст нормальный с серийником HttpAnalizator??? а то у меня на IE без серийника
зачем гемороится? 1) на vk.com можно и посылать запрос гетом, всеравно авторизуешься 2) потом к кукам которые получишь добавь Code: remixclosed_tabs=0; и спокойно дальше лазь по контакту
GET'om это типо Code: http://vkontakte.ru/[email protected]&pass=1111111 так или нет? расскажите по подробней плз
а можно примерный код от руки? я такую авторизацию делал на TWebBrowser....в своём спамере...нубовском код такой вот: Code: Web.Navigate('http://vkontakte.ru/login.php?email='+Email+'&pass='+Pass+'&HTTP/1.0'); Собственно приглашаю всех желающих... http://forum.antichat.ru/thread159327.html Т.К. сам я не осилю)
Может кто нить мне объяснить дословно по русский так сказать, как делать POST запрос, что к чему и т.д.?