Помогите с грабером музыки

Тема в разделе "PHP", создана пользователем Panzers^), 7 сен 2008.

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

    Panzers^) Постоялец

    Регистр.:
    7 окт 2007
    Сообщения:
    69
    Симпатии:
    0
    Есть такой скрипт чтобы тырить музыку с контакта, но он не коннектит, запускаешь и сразу пишет "Ошибка подключения..." в чем проблема, разобраться не могу(
    Помогите, а?


    PHP:
    <?php
    set_time_limit
    (0);//set_time_limit(120);

    //Аутентификация
    $id_user "ид";          // ID user
    $email  "мыло"// EMail
    $password "пас в мд5"// Password

    $host "vkontakte.ru";        // Host
    $path "/audio.php?act=search";          // Link
    $data "http://";                    // 
    $tile_out 30;                // TimeOut connection (30: default)

    //$len_page   = 98;  //Число показаных ссылок на 1 странице
    //ignore_user_abort(1);
        
     /* Checked $_GET parameter's */
     
    $search_string "";
     
    $page_num 1;
     if(isset(
    $_GET['q'])) $search_string $_GET['q'];
     if(isset(
    $_GET['page'])) $page_num $_GET['page'];
         
    /* <img class="playimg" onclick="return operate(31939244,1245,1585686,'19df13778a',217);" id="imgbutton31939244" nosorthandle="true" src="http://forum.xeka.ru/images/play.gif">
    <b id="performer31939244">Arkona</b> - <span id="title31939244">Vyidu Ya Na Volushku</span> <small>(<a href="id1585686">О. Маев</a>)</small></div>
    <div class="duration">3:37</div>
    <td style="width: 40px;"><a class="addAudioLink" href="audio.php?act=add&amp;add=1&amp;gid=0&amp;aid=31939244&amp;hash=e554541e25aa00a8d338b89ddd8d1db5">Добавить</a>
    #1.&nbsp; <a href="http://cs1245.vkontakte.ru/u1585686/audio/19df13778a.mp3" target="_blank"><b>Arkona</b> - Vyidu Ya Na Volushku</a> (3:37)<br>*/

    echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
     <title>Поиск музла с vkontakte.ru</title>
     <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
     <link rel="stylesheet" href="http://vkontakte.ru/css/rustyle.css" type="text/css" />
    </head>

    <body style="padding:30px;">
     <form method="get" action="" name="audioSearch">
      <span class="sWord">Найти:</span>&nbsp;<input class="inputText inputSearch" type="search" id="quickquery" name="q" size="15" value="'
    .$search_string.'" placeholder="Поиск" style="width:270px"/>
      <input class="inputSubmit" type="submit" value="Поиск" />
     </form>
     <br><br>'
    ;
     if(
    $search_string)
     {
    //setcookie();
         
    $out "POST ".$path." HTTP/1.1\r\n";
         
    $out .= "Host: ".$host."\r\n";
         
    $out .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14\r\n";
         
    $out .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
         
    $out .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
         
    $out .= "Accept-Encoding: gzip,deflate\r\n";
         
    $out .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
         
    $out .= "Keep-Alive: 300\r\n";
    //$out .= "Connection: keep-alive\r\n";
         
    $out .= "Connection: Close\r\n\r\n";
         
    $out .= "Referer: http://".$host."/\r\n";
         
    $out .= "Cookie: audio_vol=80;remixchk=5;remixemail=".urlencode($email).";remixmid=".$id_user.";remixpass=".md5($password).";\r\n";
         
    $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
         
    $out .= "Content-Length: ".strlen("act=search&add=1&gid=0&to_id=&q=".urlencode($search_string))."\r\n";
         
    $out .= "act=search&add=1&gid=0&to_id=&q=".urlencode($search_string)."\r\n";

        
    $fp fsockopen($host80$errno$errstr$tile_out); 
        if (!
    $fp) echo("$errstr ($errno)<br>\n");
        else
        {
    //die($out);
           
    fwrite($fp$out);
           while (!
    feof($fp))
           {
             
    $data .= fgets($fp128);
           }
           
    fclose($fp);
           
    $mask_link = array('return operate(',');');                             //Маска
           
    preg_match_all("/(".$mask_link[0].")(.*)(".$mask_link[1].")/i"$data$parsed_links);  //Выбираем ссылки 

             
    foreach($parsed_links[3] as $link_str)                                 //Берем каждый елемент масива в переменную $link_str
             
    {
                 
    $pattern=array("(",")","'");                                     //Что заменяем
                 
    $replace=array("","","");                                         //Чем заменяем
                 
    $replaced=str_replace($pattern,$replace,$link_str);              //Убираем скобки
                 
    $link_mas=explode(",",$replaced);                                 //Преобразуем строку где разделитель запятая в масив
                 
    echo "<a href=\"http://cs".$link_mas[1].".vkontakte.ru/u".$link_mas[2]."/audio/".$link_mas[3].".mp3\">";    //Начало ссылки
                 
    $mask_name=array($link_mas[0],'<\/span>');                         //Маска поиска Имени
                 
    preg_match_all("/(".$mask_name[0].")(.*)(".$mask_name[1].")/i",$data,$parsed_names);   // Выбираем имена
                 
    $pattern=array("\">","</b>","<span id=\"title$link_mas[0]");                                //Что заменяем
                 
    $replace=array("","","");                                                                    //Чем заменяем
                 
    $replaced=str_replace($pattern,$replace,$parsed_names[2][0]);                             //Убираем мусор

                 
    echo $replaced."</a><br>";                                                                 
       } 
    //Конец ссылки
       /*preg_match_all("#return operate\(([0-9]{2,})+,+([0-9]{2,})+,+([0-9]{2,})+,'+([0-9a-z]{2,})+',+([0-9]{2,})+\)+(.*?)+<b id=\"+(.*?)+\">+([0-9a-zA-Zа-яА-Я\s]{1,})+</b>+(.*?)+<span id=\"+(.*?)+\">+([0-9a-zA-Zа-яА-Я\s]{1,})+</span>+(.*?)+<div class=\"duration\">+([0-9:]{1,})+</div>#is", $data, $res);
        $ii = count($res[2])-1;
        for ($i=0;$i<=$ii;$i++)
        {
            echo "<b># $i: </b><a href=\"http://cs{$res[2][$i]}.vkontakte.ru/u{$res[3][$i]}/audio/{$res[4][$i]}.mp3\"><b>{$res[8][$i]}</b> - {$res[11][$i]} ({$res[13][$i]})</a><br>";
            echo($res[2][$i]);
        }*/
        //print_r ($res[1]);
         
    }
      } else echo 
    "<center>Ошибка при подключении...</center>";
      echo 
    "<br><b>Найдено: $ii композиций...</b>";
      echo 
    "<hr>";
     echo 
    "<p style='font-color:#7E7E7E;'>Copyright &copy; 2008, <b>Pandora</b><br>ICQ:<b>7-133-098</b></p>
    </body>
    </html>"
    ;
    ?>
     
  2. Panzers^)

    Panzers^) Постоялец

    Регистр.:
    7 окт 2007
    Сообщения:
    69
    Симпатии:
    0
    Ну люди) Помогите же)
     
  3. grey109

    grey109

    Регистр.:
    3 апр 2007
    Сообщения:
    176
    Симпатии:
    19
    Удаленный коннект на хостинге разрешен?
     
  4. Panzers^)

    Panzers^) Постоялец

    Регистр.:
    7 окт 2007
    Сообщения:
    69
    Симпатии:
    0
    Сокеты.. разрешены.
     
  5. gregzem

    gregzem

    Регистр.:
    21 окт 2007
    Сообщения:
    201
    Симпатии:
    66
    Попробуйте со своей машины телнетом законнектится. Если тоже даст отлуп - значит просто проверяют, чтобы извне не коннектились и не тырили.
     
  6. g-prime

    g-prime איך בין גאָט

    Регистр.:
    11 авг 2008
    Сообщения:
    779
    Симпатии:
    1.131
    На моем хосте тоже не работает. Счас посижу по разбираюсь, если получиться за сегодня сделать, то выложу
     
  7. Nafania

    Nafania

    Регистр.:
    24 мар 2007
    Сообщения:
    167
    Симпатии:
    46
    Ну начнем с самого начала.
    В скрипте вверху надо заполнить имя юзера, пасс и мыло - это заполнено?

    Далее, если смотреть код, то скрипт будет всегда выдавать
    PHP:
    echo "<center>Ошибка при подключении...</center>";
    если ничего не введено в форму поиска, поэтому строка
    PHP:
     else echo "<center>Ошибка при подключении...</center>";
    там просто лишняя
     
  8. Panzers^)

    Panzers^) Постоялец

    Регистр.:
    7 окт 2007
    Сообщения:
    69
    Симпатии:
    0
    Не, телнет не рулит( Хотя с другого пдобного скрипта коннектит, а почему тот коннектит, а этот нет - не пойму(

    Добавлено через 3 минуты
    Да, это заполнено, если даже в форму ввести что то, и нажать "Искать" то результата нет, и не понятно, либо это он не коннектит, либо не находит..
     
  9. Nafania

    Nafania

    Регистр.:
    24 мар 2007
    Сообщения:
    167
    Симпатии:
    46
    после
    PHP:
    fclose($fp);
    добавьте строчку
    PHP:
    exit(var_dump($data));
    и расскажите чего вышло.

    Вполне возможно, что на этом вконтакте изменился вывод страницы (или может даже и адрес) с момента выхода скрипта.

    Добавлено через 19 минут
    Добавляем после
    PHP:
    $out .= "act=search&add=1&gid=0&to_id=&q=".urlencode($search_string)."\r\n";
    строчки
    PHP:
    $length strlen($out);
    $out .= "Content-Length: ". ( $length 18 strlen($length) . "\r\n";
    И снова смотрим что кажет var_dump
     
  10. g-prime

    g-prime איך בין גאָט

    Регистр.:
    11 авг 2008
    Сообщения:
    779
    Симпатии:
    1.131
    ОШИБКУ МЫ ПОЛУЧИМ!!!
     
Статус темы:
Закрыта.