Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Zaycev.net - прямая ссылка =( (https://forum.antichat.xyz/showthread.php?t=118944)

FreShBY 03.05.2009 21:04

Zaycev.net - прямая ссылка =(
 
Добрый день.

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

Всё работает. Ссылку даёт, но при скачке выдаёт 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 - тут работает, значит какой-то вариант скачки работает...

Зарание спасиба

Nightmarе 03.05.2009 21:52

Естественно, а ты как хотел?
Скачать можно только через скрипт. Напрямую доступ закрыт.

FreShBY 03.05.2009 22:00

Ммм, можеш скинуть пример? Как скачать через скрипт. Пробал хеадер аттачмент .. потом реадфайл и мне краказяблы выдало .. :(

Dahaking 03.05.2009 22:16

FreShBY, он имел ввиду скачать только через сайт можно.

FreShBY 03.05.2009 22:19

как тогда __http://savefrom.net/search.php работает? Ссылка генерируется и скачать можно.

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

.:EnoT:. 03.05.2009 22:32

Много кода..=\
Нельяза чтоли в одну функцию курл засунуть?

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


Время: 20:23