Автоматическая адурилка в яндекс

Тема в разделе "PHP", создана пользователем Jed7777, 16 мар 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Jed7777

    Jed7777 Постоялец

    Регистр.:
    17 июл 2008
    Сообщения:
    136
    Симпатии:
    120
    Написал скрипт, но он не работает.
    Дело в том что он загружает в антикапчу одно и то же изображение, скорее всего что то в цикле.
    Может кто подскажет как тут до ума довести?
    Для начала раоты не забудьте втавить значение в $apikey.
    Код:
    PHP:
    <form method="GET"> 
    Сайты (каждый с новой строки, вида http://):<br><textarea name="rege" cols=50 rows=30></textarea> <br>
    <input type=submit value=Регистрировать>
    </form> 
    <?php
    //header('Content-Type: text/html; charset=CP1251');
    set_time_limit(0);
    $text $_GET['rege'];
    $array explode("\n"$text); 
    $pere count($array);
      if (!empty(
    $text)) {
        echo 
    $pere;
        
    print_r($array);
    for(
    $q 0$q $pere$q++) 
     { 
     if (!empty(
    $c))
        {
     
    $url "http://webmaster.yandex.ru/addurl.xml";
     
    $user_cookie_file $_SERVER['DOCUMENT_ROOT'].'/cookies1.txt';
     
    $ch curl_init($url);
     
    curl_setopt($chCURLOPT_URL,$url);
     
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
     
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
     
    curl_setopt($chCURLOPT_COOKIEFILE$user_cookie_file);
     
    curl_setopt($chCURLOPT_COOKIEJAR,  $user_cookie_file);
     
    $result curl_exec($ch);
     
    preg_match('#(?<=n\" value\=\").*(?=\"\>\<\/d)#'$result$key);
     for (
    $i=0;$i<count($key);$i++)
       {
       
    $a=$key[$i];
       } 
     
    $user_cookie_file $_SERVER['DOCUMENT_ROOT'].'/cookies1.txt';
     
    $ch curl_init($url2);
     
    $url2="http://captcha.yandex.net/image?key=".$a."";
     
    curl_setopt($chCURLOPT_URL$url2);
     
    curl_setopt($chCURLOPT_REFERER$url2);
     
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
     
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
     
    curl_setopt($chCURLOPT_COOKIEFILE$user_cookie_file);
     
    curl_setopt($chCURLOPT_COOKIEJAR,  $user_cookie_file);
     
    $result curl_exec($ch);
     
    file_put_contents("captcha$q.jpg"$result);
      
    $user_cookie_file $_SERVER['DOCUMENT_ROOT'].'/cookies1.txt';
      
    $url "http://webmaster.yandex.ru/addurl.xml";
      
    $e $array[$q];
      
    $a $d[$q];
      
    $poste "url=$e&rep=$c&key=$d&do=add";
      
    $ch curl_init($url);
      
    curl_setopt($chCURLOPT_URL,$url);
      
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
      
    curl_setopt($chCURLOPT_REFERER$url);
      
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
      
    curl_setopt($chCURLOPT_COOKIEFILE$user_cookie_file);
      
    curl_setopt($chCURLOPT_COOKIEJAR,  $user_cookie_file);
      
    curl_setopt($chCURLOPT_POST1);
      
    curl_setopt($chCURLOPT_POSTFIELDS$poste);
      
    $result2 curl_exec($ch);
       
    preg_match('#(?<=\<\/i\>\<span).*(?=\<\/span\>\<\/div\>\<\/div\>)#'$result2$re);
       for (
    $i=0;$i<count($re);$i++)
         {
         
    $res=$re[$i];
         } 
      
    curl_close($ch);
      echo 
    "Успешно "$res"<br>"$rrr"<br>"$q;
        }
    else
        {
    function 
    recognize($filename$apikey ''$is_verbose true$rtimeout 5$mtimeout 120$is_phrase 0$is_regsense 0$is_numeric 0$min_len 0$max_len 0)
    {
        if (!
    file_exists($filename))
        {
            if (
    $is_verbose) echo "file $filename not found\n";
            return 
    false;
        }
        
    $fp=fopen($filename,"r");
        if (
    $fp!=false)
        {
            
    $body="";
            while (!
    feof($fp)) $body.=fgets($fp,1024);
            
    fclose($fp);
                    
    $ext=strtolower(substr($filename,strpos($filename,".")+1));
        }
        else
        {
            if (
    $is_verbose) echo "could not read file $filename\n";
            return 
    false;
        }
        if (
    $ext=="jpg"$conttype="image/pjpeg";
        if (
    $ext=="gif"$conttype="image/gif";
        if (
    $ext=="png"$conttype="image/png";
        
    $sendhost="antigate.com";
        
    $boundary="---------FGf4Fh3fdjGQ148fdh";
        
    $content="--$boundary\r\n";
        
    $content.="Content-Disposition: form-data; name=\"method\"\r\n";
        
    $content.="\r\n";
        
    $content.="post\r\n";
        
    $content.="--$boundary\r\n";
        
    $content.="Content-Disposition: form-data; name=\"key\"\r\n";
        
    $content.="\r\n";
        
    $content.="$apikey\r\n";
        
    $content.="--$boundary\r\n";
        
    $content.="Content-Disposition: form-data; name=\"phrase\"\r\n";
        
    $content.="\r\n";
        
    $content.="$is_phrase\r\n";
        
    $content.="--$boundary\r\n";
        
    $content.="Content-Disposition: form-data; name=\"regsense\"\r\n";
        
    $content.="\r\n";
        
    $content.="$is_regsense\r\n";
        
    $content.="--$boundary\r\n";
        
    $content.="Content-Disposition: form-data; name=\"numeric\"\r\n";
        
    $content.="\r\n";
        
    $content.="$is_numeric\r\n";
        
    $content.="--$boundary\r\n";
        
    $content.="Content-Disposition: form-data; name=\"min_len\"\r\n";
        
    $content.="\r\n";
        
    $content.="$min_len\r\n";
        
    $content.="--$boundary\r\n";
        
    $content.="Content-Disposition: form-data; name=\"max_len\"\r\n";
        
    $content.="\r\n";
        
    $content.="$max_len\r\n";
        
    $content.="--$boundary\r\n";
        
    $content.="Content-Disposition: form-data; name=\"file\"; filename=\"capcha.$ext\"\r\n";
        
    $content.="Content-Type: $conttype\r\n";
        
    $content.="\r\n";
        
    $content.=$body."\r\n"//тело файла
        
    $content.="--$boundary--";
        
    $poststr="POST http://$sendhost/in.php HTTP/1.0\r\n";
        
    $poststr.="Content-Type: multipart/form-data; boundary=$boundary\r\n";
        
    $poststr.="Host: $sendhost\r\n";
        
    $poststr.="Content-Length: ".strlen($content)."\r\n\r\n";
        
    $poststr.=$content;
       
    // echo $poststr;
        
    if ($is_verbose) echo "connecting $sendhost...";
        
    $fp=fsockopen($sendhost,80,$errno,$errstr,30);
        if (
    $fp!=false)
        {
            if (
    $is_verbose) echo "OK\n";
            if (
    $is_verbose) echo "sending request ".strlen($poststr)." bytes...";
            
    fputs($fp,$poststr);
            if (
    $is_verbose) echo "OK\n";
            if (
    $is_verbose) echo "getting response...";
            
    $resp="";
            while (!
    feof($fp)) $resp.=fgets($fp,1024);
            
    fclose($fp);
            
    $result=substr($resp,strpos($resp,"\r\n\r\n")+4);
            if (
    $is_verbose) echo "OK\n";
        }
        else 
        {
            if (
    $is_verbose) echo "could not connect to anti-captcha\n";
            if (
    $is_verbose) echo "socket error: $errno ( $errstr )\n";
            return 
    false;
        }
        if (
    strpos($result"ERROR")!==false or strpos($result"<HTML>")!==false)
        {
            if (
    $is_verbose) echo "server returned error: $result\n";
            return 
    false;
        }
        else
        {
            
    $ex explode("|"$result);
            
    $captcha_id $ex[1];
            if (
    $is_verbose) echo "captcha sent, got captcha ID $captcha_id\n";
            
    $waittime 0;
            if (
    $is_verbose) echo "waiting for $rtimeout seconds\n";
            
    sleep($rtimeout);
            while(
    true)
            {
                
    $result file_get_contents('http://antigate.com/res.php?key='.$apikey.'&action=get&id='.$captcha_id);
                if (
    strpos($result'ERROR')!==false)
                {
                    if (
    $is_verbose) echo "server returned error: $result\n";
                    return 
    false;
                }
                if (
    $result=="CAPCHA_NOT_READY")
                {
                    if (
    $is_verbose) echo "captcha is not ready yet\n";
                    
    $waittime += $rtimeout;
                    if (
    $waittime>$mtimeout
                    {
                        if (
    $is_verbose) echo "timelimit ($mtimeout) hit\n";
                        break;
                    }
                    if (
    $is_verbose) echo "waiting for $rtimeout seconds\n";
                    
    sleep($rtimeout);
                }
                else
                {
                    
    $ex explode('|'$result);
                    if (
    trim($ex[0])=='OK') return trim($ex[1]);
                }
            }
            return 
    false;
        }
    }
    $c recognize("captcha$q.jpg");
        }
    flush();
     }
                         }
    ?>
     
  2. vov4ik09

    vov4ik09 Писатель

    Регистр.:
    9 апр 2009
    Сообщения:
    8
    Симпатии:
    0
    Интересный проект аль пока глянуть не могу а там через прокси есть возможность работать?
     
  3. Levitt

    Levitt

    Регистр.:
    20 май 2008
    Сообщения:
    358
    Симпатии:
    36
    пока скрипт не рабочий, можете воспольоватся готовыми продуктами
    Декстопный вариант от пухового http://downteam.ru/2009/11/toindex-programma-dlya-dobavleniya-stranic-sajtov-v-poiskovye-sistemy.html
    Или, автора не известен
    PHP:
    <?php
    set_time_limit
    (0);
    //ключь anti-captcha
    $anti_captcha_key '********';
    //файлик с URLами
    $urls file('url.txt');
    $i=1;


    foreach (
    $urls as $link){ //получили адрес
    $nm 0;
    do {
        
    $data geturl('http://webmaster.yandex.ru/addurl.xml');
        
    $key cut_str($data'name="key" type="hidden" value="','"'); //получили идентификатор сеанса
        
    $captcha geturl('http://captcha.yandex.net/image?key='.$key); //слили капчу


        
    $postdata = array(
            
    'method'    => 'base64',
            
    'key'       => $anti_captcha_key,
            
    'body'      => base64_encode($captcha),
            
    'ext'         => 'jpg',
            
    'phrase'    => 0,
            
    'regsense'    => 0,
            
    'numeric'    => 0,
            
    'min_len'    => 0,
            
    'max_len'    => 0
        
    );
        
    $rev geturl("http://antigate.com/in.php",$postdata); //отдали капчу антикапче

        
    if (substr($rev,0,2)=='OK'){
            
    $anti_captcha_id substr($rev,3);
        }else{
            echo 
    "Upload ERROR";
            exit;
        }


        
    $postdata = array(
            
    'key'       => $anti_captcha_key,
            
    'action'    => 'get',
            
    'id'     => $anti_captcha_id
        
    );

        
    $cap "CAPCHA_NOT_READY";
        while (
    $cap=="CAPCHA_NOT_READY") {
            
    sleep(20); //подождем 20сек. пока ее разгадают
            
    $cap geturl("http://antigate.com/res.php",$postdata); //ответ от антикапчи
        
    }


        if (
    substr($cap,0,2)=='OK'){
            
    $captcha_value substr($cap,3);
        }else{
            echo 
    $cap;
            exit;
        }

        
    $postdata = array(
            
    'url' => $link,
            
    'key' => $key,
            
    'rep' => $captcha_value
        
    );

        
    $cap geturl("http://webmaster.yandex.ru/addurl.xml",$postdata); //спамим в яндекс

        
    if (strpos($cap'является зеркалом') AND $nm==0){
            if (
    strstr($link'http://')) {
                
    $link=str_replace('http://''http://www.'$link );
                echo 
    "<b>$link</b><br>";
                
    $nm=1;
            } elseif (
    strstr($link'http://')) {
                
    $link=str_replace('http://www.''http://'$link )  ;
                echo 
    "<b>$link</b><br>";
                
    $nm=1;
            };
        } else {
        if (
    $nm == 1$nm=0;
        }
    } while (
    $nm==0);
        
        echo 
    $i.": ".$link.' - ';
        if (
    strpos($cap'успешно добавлен')){
            echo 
    'ok<br>';
        }elseif (
    strpos($cap'уже проиндексирован')){
            echo 
    'в индексе<br>';
        }elseif (
    strpos($cap'является зеркалом')){
            echo 
    'зеркало<br>';
        }elseif (
    strpos($cap'неверно указали цифровой код')){
            echo 
    'Captcha error<br>';
            
    $postdata = array(
                    
    'key'       => $anti_captcha_key,
                    
    'action'    => 'reportbad',
                    
    'id'         => $anti_captcha_id
                
    );
         
    $cap geturl("http://antigate.com/res.php",$postdata);
        }elseif (
    strpos($cap'robots.txt')){
            echo 
    'запрещен в файле robots.txt<br>';
        }elseif (
    strpos($cap'отличный от 200')){
            echo 
    '404<br>';
        }elseif (
    strpos($cap'запрещен к индексированию')){
            echo 
    'ban<br>';
        }elseif (
    strpos($cap'находится вне доменов стран СНГ')){
            echo 
    'Вне доменов стран СНГ<br>';
        }elseif (
    strpos($cap'Превышено время ожидания')){
            echo 
    'Тайм-аут<br>';
        }else{
            echo 
    'error<br>';
            echo 
    $cap;
            exit;
        }
    $i++;
    @
    ob_flush(); flush(); // вывод на клиент
    }

        
    //возвращает то, что между $left и $right в $str
        
    function cut_str($str$left$right)
        {
            
    $str substr(stristr($str$left), strlen($left));
            
    $leftLen strlen(stristr($str$right));
            
    $leftLen $leftLen ? -($leftLen) : strlen($str);
            
    $str substr($str0$leftLen);
            return 
    $str;
        }


        function 
    geturl($url,$postdata=0)
        {
            
    $poststr="";
            if (
    $postdata)
            while (list(
    $name,$value)=each($postdata)){
                if (
    strlen($poststr)>0)
                    
    $poststr.="&";
                
    $poststr.=$name."=".urlencode($value);
            }
            
    // инициализация сеанса
            
    $ch curl_init();
            
    curl_setopt($chCURLOPT_URL$url);

            if (
    $postdata){
                
    curl_setopt($chCURLOPT_POST1);
                
    curl_setopt($chCURLOPT_POSTFIELDS$poststr);
            }
            
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    $res curl_exec($ch);
            
    curl_close($ch);
            return 
    $res;
        }

    ?>
     
  4. Jed7777

    Jed7777 Постоялец

    Регистр.:
    17 июл 2008
    Сообщения:
    136
    Симпатии:
    120
    Нет мне интересно именно свой написать, понять в чем там ошибка. Аналоги не интересуют.
     
Статус темы:
Закрыта.