не качает с торент трекера файл

434
01 июля 2017, 12:17

Не скачивается торент файл.

Выдает ошибку: "Скачивание возможно только со страниц трекера. Попробуйте перейти на страницу с раздачей и кликнуть на ссылку для скачивания торрент-файла."

Уже все что можно перепробовал, ничего не выходит.

Выкладываю рабочий код

<?php
function downloadFile($data, $dataAuth)
{
    // Авторизация если нет куки файла
    if(!file_exists($dataAuth['cookieFile']))
    {
        $ch1 = curl_init($dataAuth['login_url']); 
        curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch1, CURLOPT_POSTFIELDS, $dataAuth['post']);
        curl_setopt($ch1, CURLOPT_COOKIEJAR, $dataAuth['cookieFile']);
        curl_exec($ch1);
        curl_close($ch1);
    }
    // Скачиваем файл
    $ch = curl_init($data['url']);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $data['referer_header']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $dataAuth['cookieFile']);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 0);
    curl_setopt($ch, CURLOPT_REFERER, $data['urlReferer']);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    // curl_setopt($ch, CURLOPT_FILE, $handle = fopen($file, 'a'));
    echo $out = curl_exec($ch);
    $error = curl_error($ch);
    curl_close($ch);
    echo '<pre>';
    print_r($error);
    echo '</pre>';
}
// Данные для скачивания торент файта
$data['url'] = 'http://pornolab.net/forum/dl.php?t=2317671';
$data['urlReferer'] = 'http://pornolab.net/forum/viewtopic.php?t=2317671';
$data['fileName'] = 'D:\PornFidelity.torrent';
$data['referer_header'] = [
    "Referer:".$data['urlReferer'],
    "Host:pornolab.net",
];
// Данные для авторизации
$dataAuth['login_url'] = 'http://pornolab.net/forum/login.php';
$dataAuth['cookieFile'] = 'D:\cookie[pornolabnet].txt';
$dataAuth['post']['login_username'] = 'testa123123';
$dataAuth['post']['login_password'] = '123123';
$dataAuth['post']['login'] = 'Вход';
// Запускаем функцию
downloadFile($data, $dataAuth);
Answer 1

Надо добавить больше заголовков. Откройте в браузере консоль во вкладке network и найдите, с какими заголовками уходит запрос на скачивание. Добавьте их все в свою функцию, должно помочь. Начните с таких заголовков, как Origin, host, refferer. Если есть заголовки навроде "X-Csrf-Token", "X-Requested-With" - их тоже необходимо подделать

READ ALSO
php пропустить первый Array Foreach

php пропустить первый Array Foreach

Доброго времени суток, ребят нужна помощЕсть код

335
Проблема с подключением базы данных в Yii2

Проблема с подключением базы данных в Yii2

Здравствуйте! Столкнулся с такой проблемой, что не могу подключиться к базе данных на хостинге nicru в Yii2 Framework

307
парсинг кириллических ссылок PHP

парсинг кириллических ссылок PHP

Как парсить подобные ссылки:

346
Как правильно: &ldquo;503 Service Temporarily Unavailable&rdquo; или &ldquo;503 Service Unavailable&rdquo;?

Как правильно: “503 Service Temporarily Unavailable” или “503 Service Unavailable”?

В сети встречаются оба формата записи:

187