Здрасте, вобщем так: учюсь обходить капчу вот фрагмент HTML-странички с капчой.... Code: <form name="mform" action="index.phtml" method="post" onSubmit="sF()"> <input type=hidden name="s" value="Ob0o3fHbPmqLv5W8T7mGH1SLp5ZM7cw4"><input type="hidden" name="s_post" value="cjJfP4UPuGVSnAcSUWhv1YuvnLYPoqwx"> <input type=hidden name="tip" value="CheckCode"> <input type="hidden" name="tcurl" value=SomeRef> <input type="hidden" name="tcontinue" value="yes"> <img id="CaptchaImg" width="150" height="47" border="0" align="left" src="/captcha.php?r=0&s=Ob0o3fHbPmqLv5W8T7mGH1SLp5ZM7cw4"/> <input type="text" size="10" maxlength="10" value="" name="captcha" autocomplete="off" /><br><br><br> Введите цифры, которые вы видите на картинке. <br/> Если вы не видите изображения нажмите <a id="CaptchaLink" xonclick="wopen('/my/reg_code.phtml','code',380,160,'yes','yes',0);return false;" target="code" href="?image=1">here</a> <script> jsLoader.require('{jQuery}jquery', function () { // обновить капчу, при клике на неё $("#CaptchaImg,#CaptchaLink") .load(function (){ $(this).css('opacity', 1); }) .css('cursor', 'pointer') .click(function () { $RA($('#CaptchaImg').css('opacity', .3)[0], 'src', /\?r=\d/, '?r='+jsCore.getTimer()); return false; }) ; }); </script> <script language="JavaScript"> <!-- function sF() { document.forms.mform.elements.submit.value="Please wait..."; document.forms.mform.elements.submit.disabled="true"; } --> </script> <div class="tab40"><input name="submit" type="submit" value="Continue"></div> </form> Допустим, я успешно расшифровал картинку на капче. Как мне используя MS VisualStudio 2003 ---> C++ ---> wininet.h отослать серваку цифри из картинки капчи, допустим ето 123456? З.Ы. Сори если че не так, ето первая моя тема туД
хм... http://www.daniweb.com/forums/thread43523.html# направление полета мысли получено? =) яб помог но Си не знаю... А так это все основа основ.
интересует какие параметры передавать... куда писать цифри из картинки? одним словом, что именно в конкретном случае сервер от меня хочет? тада как ето реализовать на другом язике? я уже для себя переведу на Си сам...
о, ет ближе к делу... скачял я какота навароченый сниффер.... ток не могу с ним разобратся.... подскажи линк на простой сниффер и как с ним работать, можт инфа есть?
плагины для фф есть (tamper data к примеру. Там ничего сложного нет + русский он). ну может поможет: python пост запрос PHP: # -*- coding: utf-8 -*- import urllib,httplib data = {"content":"import test; print test","language":"Python","title":"","poster":"","hold":""} params = urllib.urlencode(data) headers = {"http-equiv": "Content-Type", " content": "text/html","charset":"utf8"} connection = httplib.HTTPConnection("www.dpaste.com:80") connection.request("POST", "/", params) otvet = connection.getresponse() print otvet.status, otvet.reason dataa = otvet.read() print dataa connection.close()
А это на что? Code: <form name="mform" action="index.phtml" method="post" onSubmit="sF()"> Так если знаешь почему не пишеш там же все в куске html что ты привел все есть!
вот что должно предаваться РОST запросом: Code: s=Ob0o3fHbPmqLv5W8T7mGH1SLp5ZM7cw4 s_post=cjJfP4UPuGVSnAcSUWhv1YuvnLYPoqwx tip=CheckCode tcurl=SomeRef tcontinue=yes captcha=капча wininet.h - это я не знаю. Windows must die В с++ с использованием libcurl это все решается за минуту!
Вот на с++: Code: #include <iostream> #include <string.h> #include <curl/curl.h> using namespace std; static int writer(char *data, size_t size, size_t nmemb,string *buffer) { int result = 0; if (buffer != NULL) { buffer->append(data, size * nmemb); result = size * nmemb; } return result; } int main() { CURL * curl; CURLcode result; curl_slist *slist = NULL; string buffer; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); slist = curl_slist_append(slist, "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); slist = curl_slist_append(slist, "Accept-Language: ru,en-us;q=0.7,en;q=0.3"); slist = curl_slist_append(slist, "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7"); slist = curl_slist_append(slist, "Keep-Alive: 300"); slist = curl_slist_append(slist, "Connection: keep-alive"); curl_easy_setopt(curl, CURLOPT_HEADER, 0); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); curl_easy_setopt(curl, CURLOPT_AUTOREFERER, 1); curl_easy_setopt(curl, CURLOPT_ENCODING, "gzip,deflate"); curl_easy_setopt(curl, CURLOPT_COOKIELIST, ""); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer); curl_easy_setopt(curl, CURLOPT_POST, 1); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "s=Ob0o3fHbPmqLv5W8T7mGH1SLp5ZM7cw4&s_post=cjJfP4UPuGVSnAcSUWhv1YuvnLYPoqwx&tip=CheckCode&tcurl=SomeRef&tcontinue=yes&captcha=капча"); curl_easy_setopt(curl, CURLOPT_USERAGENT,"Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.43 Safari/532.5"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, slist); curl_easy_setopt(curl, CURLOPT_REFERER, "тут url страници где находиться форма"); curl_easy_setopt(curl, CURLOPT_URL, "тут URL страници обрабатывающий запрос!"); result = curl_easy_perform(curl); //в buffer находиться страница ответа return 0; }
Спасибки, интересовала ета строчка: Code: curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "s=Ob0o3fHbPmqLv5W8T7mGH1SLp5ZM7cw4&s_post=cjJfP4UPuGVSnAcSUWhv1YuvnLYPoqwx&tip=CheckCode&tcurl=SomeRef&tcontinue=yes&captcha=капча"); теперь попробую на wininet переписать... З.Ы. последовательность параметров которые я передаю имеет значение для сервака?