Zaycev.net - прямая ссылка =(

Discussion in 'PHP' started by FreShBY, 3 May 2009.

  1. FreShBY

    FreShBY Banned

    Joined:
    3 May 2009
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    Добрый день.

    Попробовал написать сегодня скрипт для генерации прямой ссылки на скачку.

    Всё работает. Ссылку даёт, но при скачке выдаёт 403 Forbidden.

    Вот код:
    PHP:
    <?php
    echo <<<HTML
    <form action="" method="post">
    <input type="text" name="query"><input type="submit" name="submit" name="Поиск!">
    </form>
    HTML;

    if(isset(
    $_POST['query']))
    {
            
    $_POST['query'] = str_replace(" ", "+", $_POST['query']);

            
    $url = "http://zaycev.net/search.html?query_search=".$_POST['query']."&sub=%CD%E0%E9%F2%E8%21";
            
    $ch = curl_init($url);
            
    curl_setopt($ch, CURLOPT_URL, $url);
            
    curl_setopt($ch, CURLOPT_VERBOSE, 2);
            
    curl_setopt($ch, CURLOPT_ENCODING, 0);
            
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
            
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
            
    curl_setopt($ch, CURLOPT_HEADER, 1);
            
    curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
            
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
            
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            
    $html = curl_exec($ch);
            
    curl_close($ch);

            
    preg_match_all("/<a href='http:\/\/www.zaycev.net\/pages\/(.*?)'>(.*?)<\/a>/i", $html, $out);

            for(
    $i=0; $i<count($out[1]); $i++)
            {
                echo 
    '<a href="'.$PHP_SELF.'?mp3_url=http://www.zaycev.net/pages/'.$out[1][$i].'">'.$out[2][$i].'</a><br>';
            }
    }

    if(isset(
    $_GET['mp3_url']) OR isset($_GET['text_check']))
    {
        if(!isset(
    $_GET['text_check']))
        {
            
    $url = $_GET['mp3_url'];
            
    $ch = curl_init($url);
            
    curl_setopt($ch, CURLOPT_URL, $url);
            
    curl_setopt($ch, CURLOPT_VERBOSE, 2);
            
    curl_setopt($ch, CURLOPT_ENCODING, 0);
            
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
            
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
            
    curl_setopt($ch, CURLOPT_HEADER, 1);
            
    curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
            
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
            
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            
    curl_setopt ($ch, CURLOPT_COOKIESESSION, true);
            
    curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookies/zaycev.net.txt');
            
    curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookies/zaycev.net.txt');
            
    curl_setopt ($ch, CURLOPT_COOKIE, session_name() . '=' . session_id());
            
    $html = curl_exec($ch);
            
    curl_close($ch);

            
    preg_match('/"http:\/\/www.zaycev.net\/download.php\?ass=(.*?)&id=(.*?)"/i', $html, $out);
            
    $url = 'http://www.zaycev.net/download.php?ass='.$out[1].'&id='.$out[2];
            
    $download_url = $url;
            
    //$ass = $out[1];
            
    $id = $out[2];

            
    $ch = curl_init($url);
            
    curl_setopt($ch, CURLOPT_URL, $url);
            
    curl_setopt($ch, CURLOPT_VERBOSE, 2); // Отображать детальную информацию о соединении
            
    curl_setopt($ch, CURLOPT_ENCODING, 0); // Шифрование можно включить, если нужно
            
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
            
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
            
    curl_setopt($ch, CURLOPT_HEADER, 1);
            
    curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
            
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
            
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            
    curl_setopt($ch, CURLOPT_COOKIESESSION, true);
            
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies/zaycev.net.txt'); // вроде куда сохранять
            
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies/zaycev.net.txt'); // вроде откуда брать
            
    curl_setopt ($ch, CURLOPT_COOKIE, session_name() . '=' . session_id());
            
    $html = curl_exec($ch);
            
    curl_close($ch);

            
    preg_match('/src="\/captcha.php\?id=(.*?)"/i', $html, $out);
            
    $image = "http://zaycev.net/captcha.php?id=".$out[1];
            
    $captcha_id = $out[1];

            
    preg_match('/name="ass" value="(.*?)"/i', $html, $out2);
            
    $ass = $out2[1];

                if(
    $fsock = fsockopen("zaycev.net", 80, $errno, $errstr, 30))
                {
                @
    fputs($fsock, "GET /captcha.php?id=".$out[1]." HTTP/1.1\r\n");
                @
    fputs($fsock, "Host: zaycev.net\r\n");
                @
    fputs($fsock, "Connection: close\r\n\r\n");
                while (!@
    feof($fsock))
                {
                    
    $thread .= @fread($fsock, 128);
                }
                @
    fclose($fsock);
            }

            
    $html = explode("\r\n\r\n", $thread);
            
    $f = fopen("captcha/zaycev/".$out[1]."_code.jpg", "w");
            
    fputs($f, $html[1]);
            
    fclose($f);
            
            echo 
    "<img src=\"captcha/zaycev/{$out[1]}_code.jpg\" border=\"0\">";
            echo 
    '<form action="" method="get"><input type="hidden" name="download_url" value="'.$download_url.'"><input type="text" name="text_check"><input type="hidden" name="ass" value="'.$ass.'"><input type="hidden" name="id" value="'.$id.'"><input type="hidden" name="captcha_id" value="'.$captcha_id.'"><input type="submit" name"submit" value="OK"></form>';
        } else {
            
    $_GET['ass'] = str_replace(" ", "+", $_GET['ass']);
            
    $url = "http://zaycev.net/download.php?id=".$_GET['id']."&ass=".$_GET['ass']."&text_check=".$_GET['text_check']."&captcha_id=".$_GET['captcha_id']."&ok=%D1%EA%E0%F7%E0%F2%FC";
            echo 
    $url."<p>";
            
            
    $ch = curl_init($url);
            
    curl_setopt($ch, CURLOPT_URL, $url);
            
    curl_setopt($ch, CURLOPT_VERBOSE, 2); // Отображать детальную информацию о соединении
            
    curl_setopt($ch, CURLOPT_ENCODING, 0); // Шифрование можно включить, если нужно
            
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
            
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
            
    curl_setopt($ch, CURLOPT_HEADER, 1);
            
    curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
            
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
            
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            
    curl_setopt($ch, CURLOPT_COOKIESESSION, true);
            
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies/zaycev.net.txt'); // вроде куда сохранять
            
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies/zaycev.net.txt'); // вроде откуда брать
            
    curl_setopt ($ch, CURLOPT_COOKIE, session_name() . '=' . session_id());
            
    $html = curl_exec($ch);
            
    curl_close($ch);

            
    preg_match('/http:\/\/dl.zaycev.net\/(.*?).mp3/i', $html, $out);
            echo 
    '<a href="http://dl.zaycev.net/'.$out[1].'.mp3">Скачать</a>';
        }
    }
    ?>
    Может в чём-то я ошибся? SaveFrom.net - тут работает, значит какой-то вариант скачки работает...

    Зарание спасиба
     
  2. FreShBY

    FreShBY Banned

    Joined:
    3 May 2009
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    Ммм, можеш скинуть пример? Как скачать через скрипт. Пробал хеадер аттачмент .. потом реадфайл и мне краказяблы выдало .. :(
     
  3. Dahaking

    Dahaking Banned

    Joined:
    28 Mar 2009
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    FreShBY, он имел ввиду скачать только через сайт можно.
     
  4. FreShBY

    FreShBY Banned

    Joined:
    3 May 2009
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    как тогда __http://savefrom.net/search.php работает? Ссылка генерируется и скачать можно.

    В моём скрипте обычная ссылка, как и на самом зайцеве. Просто мой скрипт без графики и т.д.- что бы быстрее и удобнее.
     
  5. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Много кода..=\
    Нельяза чтоли в одну функцию курл засунуть?

    По сабжу, заголовки прописывай и качай на здоровье /threadnav40896-1041-10.html