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($chCURLOPT_URL$url);
            
    curl_setopt($chCURLOPT_VERBOSE2);
            
    curl_setopt($chCURLOPT_ENCODING0);
            
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0');
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
            
    curl_setopt($chCURLOPT_FAILONERROR1);
            
    curl_setopt($chCURLOPT_HEADER1);
            
    curl_setopt($chCURLINFO_HEADER_OUT1);
            
    curl_setopt($chCURLOPT_CONNECTTIMEOUT30);
            
    curl_setopt($chCURLOPT_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($chCURLOPT_URL$url);
            
    curl_setopt($chCURLOPT_VERBOSE2);
            
    curl_setopt($chCURLOPT_ENCODING0);
            
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0');
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
            
    curl_setopt($chCURLOPT_FAILONERROR1);
            
    curl_setopt($chCURLOPT_HEADER1);
            
    curl_setopt($chCURLINFO_HEADER_OUT1);
            
    curl_setopt($chCURLOPT_CONNECTTIMEOUT30);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
            
    curl_setopt ($chCURLOPT_COOKIESESSIONtrue);
            
    curl_setopt ($chCURLOPT_COOKIEJAR'cookies/zaycev.net.txt');
            
    curl_setopt ($chCURLOPT_COOKIEFILE'cookies/zaycev.net.txt');
            
    curl_setopt ($chCURLOPT_COOKIEsession_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($chCURLOPT_URL$url);
            
    curl_setopt($chCURLOPT_VERBOSE2); // Отображать детальную информацию о соединении
            
    curl_setopt($chCURLOPT_ENCODING0); // Шифрование можно включить, если нужно
            
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0');
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
            
    curl_setopt($chCURLOPT_FAILONERROR1);
            
    curl_setopt($chCURLOPT_HEADER1);
            
    curl_setopt($chCURLINFO_HEADER_OUT1);
            
    curl_setopt($chCURLOPT_CONNECTTIMEOUT30);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
            
    curl_setopt($chCURLOPT_COOKIESESSIONtrue);
            
    curl_setopt($chCURLOPT_COOKIEJAR'cookies/zaycev.net.txt'); // вроде куда сохранять
            
    curl_setopt($chCURLOPT_COOKIEFILE'cookies/zaycev.net.txt'); // вроде откуда брать
            
    curl_setopt ($chCURLOPT_COOKIEsession_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$errstr30))
                {
                @
    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($fsock128);
                }
                @
    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($chCURLOPT_URL$url);
            
    curl_setopt($chCURLOPT_VERBOSE2); // Отображать детальную информацию о соединении
            
    curl_setopt($chCURLOPT_ENCODING0); // Шифрование можно включить, если нужно
            
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0');
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
            
    curl_setopt($chCURLOPT_FAILONERROR1);
            
    curl_setopt($chCURLOPT_HEADER1);
            
    curl_setopt($chCURLINFO_HEADER_OUT1);
            
    curl_setopt($chCURLOPT_CONNECTTIMEOUT30);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
            
    curl_setopt($chCURLOPT_COOKIESESSIONtrue);
            
    curl_setopt($chCURLOPT_COOKIEJAR'cookies/zaycev.net.txt'); // вроде куда сохранять
            
    curl_setopt($chCURLOPT_COOKIEFILE'cookies/zaycev.net.txt'); // вроде откуда брать
            
    curl_setopt ($chCURLOPT_COOKIEsession_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
    Много кода..=\
    Нельяза чтоли в одну функцию курл засунуть?

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