Приветствую. Я сейчас пытаюсь написать парсер торрентов с rutracker.org. Но возникла проблема, там запрещено скачивание по прямой ссылке. Тоесть, если попробовать перейти вот так - http://dl.rutracker.org/forum/dl.php?t=2851939 то вы увидите что оно вам напишет, вот скриншот, на всякий случай: Я, так понимаю, что оно проверяет $_SERVER['HTTP_REFERER']. Пытался подделывать так: PHP: $cookie = 'spylog_test=1;bb_data=***************************************************************' ; $opts = array( 'http'=>array( 'method'=>"GET", 'header'=>"Accept-language: ru\r\n" . "Cookie: ".$cookie."\r\n" ) ); $headers = stream_context_create($opts); $h = $_SERVER['HTTP_USER_AGENT']; ini_set('user_agent',"$h".chr(13).chr(10).'Referer: http://rutracker.org/forum/viewtopic.php?t=2851939'); $getBrowse = file_get_contents('http://dl.rutracker.org/forum/dl.php?t=2851939', false, $headers); Обычную страницу парсит на ура, логинится, все как надо. А при скачивании ошибка, та, что вверху показывал. Подскажите, пожалуйста, как это обойти.
Вышло реализовать с помощью curl скрипта. Но все же хотелось бы узнать, есть ли другая реализация, без сторонних библиотек? Чтобы везде работала..
Посмотрел я там всё, короче реферер тут не имеет никакого значение. Самое главное - это предача куков. Таких headerов вполне достаточно чтобы получить файл. Если не веришь, то charles в руки! При чем bb_dl равен параметру $_GET['t'] ___ДОБАВЛЕНО____ Еще раз проверил Cookie: bb_data=знач; И всё будет тебе счастье! ___ДОБАВЛЕНО____ 'method'=>"POST", PHP: $cookie = 'bb_data=*************************** ************************************' ; $opts = array( 'http'=>array( 'method'=>"POST", 'header'=>"Cookie: ".$cookie."\r\n" ) ); $headers = stream_context_create($opts); $getBrowse = file_get_contents('http://dl.rutracker.org/forum/dl.php?t=2851939', false, $headers); Проверь у меня на Денвере пашет P.S. Там есть ограниченение на кол-во закаченых торентов в день, если больше, то уже в минус уходишь. Если нужна помощь пиши в асю