(PHP) Имитация Referer

Discussion in 'PHP' started by Fantom3D, 28 Aug 2010.

  1. Fantom3D

    Fantom3D New Member

    Joined:
    23 Aug 2009
    Messages:
    71
    Likes Received:
    2
    Reputations:
    -1
    Приветствую. Я сейчас пытаюсь написать парсер торрентов с rutracker.org. Но возникла проблема, там запрещено скачивание по прямой ссылке. Тоесть, если попробовать перейти вот так - http://dl.rutracker.org/forum/dl.php?t=2851939 то вы увидите что оно вам напишет, вот скриншот, на всякий случай:

    [​IMG]

    Я, так понимаю, что оно проверяет $_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);
    Обычную страницу парсит на ура, логинится, все как надо. А при скачивании ошибка, та, что вверху показывал. Подскажите, пожалуйста, как это обойти. :confused: :confused:
     
    #1 Fantom3D, 28 Aug 2010
    Last edited: 28 Aug 2010
  2. Fantom3D

    Fantom3D New Member

    Joined:
    23 Aug 2009
    Messages:
    71
    Likes Received:
    2
    Reputations:
    -1
    Вышло реализовать с помощью curl скрипта.

    Но все же хотелось бы узнать, есть ли другая реализация, без сторонних библиотек? Чтобы везде работала.. :rolleyes: :rolleyes: :rolleyes:
     
    #2 Fantom3D, 28 Aug 2010
    Last edited: 28 Aug 2010
  3. ZnikiR

    ZnikiR Member

    Joined:
    14 Jan 2009
    Messages:
    117
    Likes Received:
    21
    Reputations:
    -5
    Посмотрел я там всё, короче реферер тут не имеет никакого значение.
    Самое главное - это предача куков.
    Таких 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. Там есть ограниченение на кол-во закаченых торентов в день, если больше, то уже в минус уходишь.
    Если нужна помощь пиши в асю
     
    #3 ZnikiR, 28 Aug 2010
    Last edited: 28 Aug 2010