C++ Builder отправка смс билайн нужна помощь

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by good_man, 30 Aug 2010.

  1. good_man

    good_man New Member

    Joined:
    24 May 2010
    Messages:
    112
    Likes Received:
    3
    Reputations:
    -2
    доброго времени суток форумчане.

    решил заюзать отправку смс с сайта билайн (средствами си билдер и компонентом Indy)

    http://www.beeline.ru/sms/index.wbp

    но че то не получается. поснифал, куков там чето много, пытался отловить в заголовках ответа, но у меня там только два кукиса:

    WEBTRENDS_ID=2**.118.90.196-1024927952.30099463;
    ASP.NET_SessionId=s0ow3v554h3xuq45nagkco55;

    попробывал их заюзать так:

    IdHTTP1->Request->CustomHeaders->Add("Cookie: "+cok1+'\r\n'+cok2);

    но мессага так и не отправилась(код с капчи естесно добавлял в запрос). и немного не понимаю, в ссылке запроса есть параметры "&x=47&y=7" "y" это я так понял день недели ) хотя это просто догадка(завтра точно узнаю так это или нет), а вот что такое "x"? ))

    в общем надеюсь на помощь. вот.

    upd: "y" это не день недели =( блин.
     
    #1 good_man, 30 Aug 2010
    Last edited: 30 Aug 2010
  2. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    X и Y это координаты места на кнопке, по которому произошло нажатие. (можно юзать константные значения, например 15 и 10)
    И никакие куки отправлять не нужно, достаточно всего лишь одного post запроса.
     
    1 person likes this.
  3. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17

    Да там1 пост
     
    1 person likes this.
  4. good_man

    good_man New Member

    Joined:
    24 May 2010
    Messages:
    112
    Likes Received:
    3
    Reputations:
    -2
    спасибо ребят огромное!

    но чет мне все время выдает "неверный код подтверждения" шлю одним постом, без куков, номера телов разные
     
    #4 good_man, 31 Aug 2010
    Last edited: 31 Aug 2010
  5. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Знач капчу не так вытягиваешь
     
  6. good_man

    good_man New Member

    Joined:
    24 May 2010
    Messages:
    112
    Likes Received:
    3
    Reputations:
    -2
    да походу ) я тупо дергаю ее с http://www.beeline.ru/mamimg.aspx?width=120&height=30

    как тогда сделать чтоб код отправлялся именно той капчи которую я вытягиваю? )) там есть параметр confirm_key= но он пустой...
     
    #6 good_man, 31 Aug 2010
    Last edited: 31 Aug 2010
  7. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Щас гляну у себя в исходниках

    -----------------------------------------


    Нет с капчей все верно ты делаешь


    Send=
    Smstext=Твой текст
    Smstoprefix=префикс 905 там
    Smsto-номер без префикса
    dirtysmstext=Cнова твой текст
    confirm_key=пусто
    confirmcode=капча

    Вот самое главное
     
    #7 0pTik, 31 Aug 2010
    Last edited: 31 Aug 2010
  8. good_man

    good_man New Member

    Joined:
    24 May 2010
    Messages:
    112
    Likes Received:
    3
    Reputations:
    -2
    ёпта )) кароч просмотрел момент:

    TStringList*post=new TStringList;
    post->Add("send=");
    post->Add("smstext=testtest");
    post->Add("smstoprefix=90*");
    post->Add("smsto=3434***");
    post->Add("dirtysmstext=testtest");
    post->Add("translit=");
    post->Add("confirm_key=");
    post->Add("confirmcode="+Edit1->Text);
    //post->Add(Edit1->Text);
    post->Add("x=47");
    post->Add("y=9");

    там где закоментировано ошибка была ) в общем ура заработало! спасибо ребят! ) кста на остальных сайтах как с этим? мтс мегафон )

    и кста капча у них жосткая ) нолик от буквы "O" хрен отличишь
     
    #8 good_man, 31 Aug 2010
    Last edited: 31 Aug 2010
  9. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    На мтс все достаточно сложно , на мегафон херня
     
  10. good_man

    good_man New Member

    Joined:
    24 May 2010
    Messages:
    112
    Likes Received:
    3
    Reputations:
    -2
    че с мтс? оч интересно ) если можно немного поподробнее ) а то я тут полраздела засрал темами ))
     
  11. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Ну там много разных хитростей было когда я делал
     
  12. good_man

    good_man New Member

    Joined:
    24 May 2010
    Messages:
    112
    Likes Received:
    3
    Reputations:
    -2
    мда ) глянул пост параметры на сайте мтс ) пздц ))

    маньяки сцук ) пытался их вставить в теги
    Code:
     мессага почему то становится пустой ))
     
    #12 good_man, 31 Aug 2010
    Last edited: 31 Aug 2010
  13. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    Алгоритм отправки смс через сайты операторов практически везде совпадает

    1) Биллайн на примере beeline.ua (beeline.ru аналогично)

    GET [http://mobile.beeline.ua/ru/sms/send.wbp
    получаем куки


    GET http://mobile.beeline.ua/ru/sms/mamimg1.aspx
    получаем капчу и распознаем


    POST http://mobile.beeline.ua/ru/sms/send.wbp
    send=&smstext=
    [СООБЩЕНИЕ_В_UTF8]
    &smstoprefix=
    [ПРЕФИКС]
    &smsto=
    [НОМЕР]
    &dirtysmstext=
    [СООБЩЕНИЕ_В_UTF8]
    &confirm_key=&confirmcode=
    [КАПЧА]
    &x=
    [РАНДОМ_X]
    &y=
    [РАНДОМ_Y]

    Ответы (в UTF8):
    помещено в очередь отправки
    Вы отправляете сообщения слишком часто
    Невозможно отправить сообщение
    Неверный код подтверждения


    2) МТС

    GET http://www.mts.ru/live/smsxtra.aspx
    получаем куки, парсим ссылку на капчу и значения:
    LBD_VCT_live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captchanew
    __VIEWSTATE
    __EVENTVALIDATION


    GET http://www.mts.ru/live/LanapCaptcha.aspx?get=image&c=...
    получаем капчу и распознаем


    POST http://www.mts.ru/live/smsxtra.aspx
    ctl00_ctl00_ctl00_SMSSendControl_RadScriptManager1_TSM=&__EVENTTARGET=&__EVENTARGUMENT=&LBD_VCT_live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captchanew=
    [LBD_VCT_live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captchanew (то, что спарсили)]
    &__VIEWSTATE=
    [__VIEWSTATE (то, что спарсили)]
    &__EVENTVALIDATION=
    [__EVENTVALIDATION (то, что спарсили)]
    &ctl00_ctl00_ctl00_SMSSendControl_RadFormDecorator1_ClientState=&ctl00%24ctl00%24ctl00%24SMSSendControl%24ddPrefix=
    [ПРЕФИКС]
    &ctl00_ctl00_ctl00_SMSSendControl_ddPrefix_ClientState=&ctl00%24ctl00%24ctl00%24SMSSendControl%24tbPhoneNumber=
    [НОМЕР]
    &ctl00%24ctl00%24ctl00%24SMSSendControl%24tbMessage=
    [СООБЩЕНИЕ_В_UTF8]
    &ctl00%24ctl00%24ctl00%24SMSSendControl%24tbCode=
    [КАПЧА]
    &ctl00_ctl00_ctl00_SMSSendControl_ctl01_ClientState=&ctl00_ctl00_ctl00_SMSSendControl_ctl02_ClientState=&ctl00_ctl00_ctl00_SMSSendControl_ctl03_ClientState=&ctl00_ctl00_ctl00_SMSSendControl_ctl04_ClientState=&ctl00_ctl00_ctl00_SMSSendControl_ctl06_ClientState=&ctl00%24ctl00%24ctl00%24SMSSendControl%24btnSend.x=
    [РАНДОМ_X]
    &ctl00%24ctl00%24ctl00%24SMSSendControl%24btnSend.y=
    [РАНДОМ_Y]

    Ответы:
    ctl00_ctl00_ctl00_SMSSendControl_lbSuccess - отправлено
    ctl00_ctl00_ctl00_SMSSendControl_lblPhoneError - неверный номер телефона получателя
    ctl00_ctl00_ctl00_SMSSendControl_lblCapchaError - неверный код подтверждения
    ctl00_ctl00_ctl00_SMSSendControl_lblError - превышен лимит сообщений с одного IP адреса
     
    #13 M_script, 31 Aug 2010
    Last edited: 1 Sep 2010
    3 people like this.
  14. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17


    За Мтс спасибо , не думал , что там легко )
     
  15. good_man

    good_man New Member

    Joined:
    24 May 2010
    Messages:
    112
    Likes Received:
    3
    Reputations:
    -2
    M_script

    за параметры мтс большое спасибо! с билайном справился.

    а вот кодированные до 14 с лишним килобайт параметры поста на сайте мтс меня вобще убили )

    про капчу, по вашей ссылке выдает ошибку400. я как понял дергать нада с LanapCaptcha.aspx?get=image&c=live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captchanew&t=23354fa02c9941718afe35ca59d21441&s=WoqvegT69NnTJO9L0oIAzNka0Ez3RjRNkZL%2bJxBuAVI%3d ? или нет? ) наверно глупость спросил. просто пока не тестил. туплю сижу. ))
     
    #15 good_man, 31 Aug 2010
    Last edited: 31 Aug 2010
  16. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Именно оттуда , параметры все спарсить можно

    http://www.mts.ru/live/LanapCaptcha.aspx?get=image&c=live_smsxtra_ctl00_ctl00_ctl00_smssendcontrol_captchanew&t=41fefaf47e1f4794bca44a909f6904c9&s=0lTm5zEB%2f%2bDMzGZFQx9MhEBAktidqXGbkZL%2bJxBuAVI%3d
     
  17. good_man

    good_man New Member

    Joined:
    24 May 2010
    Messages:
    112
    Likes Received:
    3
    Reputations:
    -2
    блин ) взялся за мтс в общем. спарсил что нужно вроде. после поста кидает на страницу 500. может быть из-за того что в некоторых параметрах отправляю "/" а не %2F ?

    и неподскажите как уменьшить размер капчи? а то она такая здоровая чо та :)

    и еще когда выдираю параметр __VIEWSTATE у меня вконце почемуто всегда есть два знака "==" выдираю ровно до конца, до знака "

    пробывал обрезать эти "==" но все равно редиректит на страницу 500

    хотел спросить у M_Script, этих параметров (которые вы запостили(для МТС)) точно достаточно? так уж неохото все их подставлять и так много их
     
    #17 good_man, 7 Sep 2010
    Last edited: 7 Sep 2010
  18. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    good_man, я эти запросы не просто отловил снифером, а взял из своих программ, которые сейчас в рабочем состоянии.

    p.s.: небольшое напоминание - параметры хттп-запросов нужно отправлять в урленкоде.
     
  19. BigWheeelS

    BigWheeelS New Member

    Joined:
    24 Oct 2010
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Сейчас параметра __EVENTVALIDATION вообще нет в форме... Похоже что-то поменяли МТС
     
  20. Vladislav

    Vladislav New Member

    Joined:
    21 Jun 2011
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Проблема с капчой

    Доброго времени суток.
    Занимаясь той же задачей, что рассматривалась в топике, столкнулся с проблемой: не могу выдрать капчу. Очевидно, что что-то делаю не так, но вот что - понять не могу. Вот кусок кода с обработкой:

    Code:
    	IdHTTP1->Get("http://www.beeline.ru/sms/index.wbp");		// запрос		
    
    	String Cook1, Cook2, Cookie;
    	TStringList *list = new TStringList;
    // Выдираем куки
    	IdHTTP1->Response->RawHeaders->Extract("Set-cookie", list);	// забрали нужное
    	list->SaveToFile("cookie.txt");			// это просто для проверки
    	Cookie = list->CommaText;				// загнали в String
    
    	// Cook1 - нечто вот такое: WEBTRENDS_ID=178.120.145.59-4059980496.30158924
    	Cook1 = Cookie.SubString( 2, Cookie.Pos(";") - 2 );
    	// Cook2: ASP.NET_SessionId=rcd3wi45zl3rke55lsire2au (для примера, частный случай)
    	Cook2 = Cookie.SubString( Cookie.Pos("ASP"), Cookie.Pos("Http") - Cookie.Pos("ASP") - 10 );
    
    	// Собрали воедино
    	Cookie = "Cookie: " + Cook1 + "; " + Cook2 + ";";
    
    	// Cookie = "Cookie: " + Cook1 + ";\r\n" + Cook2 + ";"; - перенос строки сути не меняет
    
    	// Добавляем в заголовки
     	IdHTTP1->Request->CustomHeaders->Add( Cookie );
    
    	// А вот тут и всё...
    	IdHTTP1->Get("http://www.beeline.ru/mamimg.aspx?width=120&height=30");
    
    Последний Get стабильно возвращает 404. Что-то я с ним намудрил, что одно время выдавалось 400 "Bad request", но это дела не меняет - оно всё равно не работало.
    Подскажите, пожалуйста, что делаю не так. Третий день голову ломаю :confused: