Xwab
Форумыnavigate_nextПрограммирование на PHP

Подмена реферера
Сообщения
Axion

Здаствуйте.
1. Скажите, пожалуйста, как правильно подменить реферер в граббере (не курл, а обычном)?
Правильно ли будет
<?php
$file = file_get_contents("http://wapos.ru/video.php?".$_SERVER['QUERY_STRING']);
$browser = set_referer("http://wapos.ru/");
$file = str_replace("index.php","http://mysite.ru/index.php",$file);
echo $file;
?>
или
<?php
$file = file_get_contents("http://wapos.ru/video.php?".$_SERVER['QUERY_STRING']);
$browser->set_referer($referer);
$referer = ("http://wapos.ru/");
$file = str_replace("index.php","http://mysite.ru/index.php",$file);
echo $file;
?>
Какие еще варианты есть?
2. Возможно ли отследить, с сайта был ли переход или с граббера и каким образом?
===
Заранее спасибо

23 Авг 2011, 17:30
Netot

Axion, где то тут эта проблема уже рассматривалась. Поищи

23 Авг 2011, 18:12
Axion

Нашёл только тему "Скрытие реферер" Автор: Met@ll. Но там рассматривается curl и какой то незнакомый код, типа для парсера. Так что прошу помочь с моим конкретным вопросом

23 Авг 2011, 21:53
aBSuRD

Axion, а чем тебя вариант с курл'ом не устраивает?

24 Авг 2011, 0:59
MadLion

вроде в обычных грабах его заголовками меняют
_____
CURL

function get_page($url) {
   $ch = curl_init($url);
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_REFERER, "http://site.ru");
   curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95_8GB/15.0.015; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413');

    $result = curl_exec($ch);
   return $result;
}

DEFAULT
function get_page($url) {
   #print $url;

    $context = stream_context_create(array(
      'http' => array(
      'method' => 'GET',
      'referer' => 'http://site.ru',
      'header' => 'User-Agent: Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95_8GB/15.0.015; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413' . PHP_EOL,
      'content' => '',
      ),)
   );

    $result = file_get_contents($url, 0, $context);

   return $result;
}
ПРИМИНЕНИЕ

$page=get_page("http://site.ru"); //в этом параметре будет страница
добавлено спустя 12 минут:
если че неправильно написал простите меня грешного :yy:

24 Авг 2011, 1:13
Axion

aBSuRD, потому что я не шарю курл

24 Авг 2011, 1:19
MadLion

Axion, ну как насчет моего варианта

24 Авг 2011, 1:21
Axion

White Assas7in, а можно ли подменить реферер без подмены юзер-агента (ты написал Nokia N95)
---
Куда нужно вставлять код (DEFAULT) сразу после "<?php" ?
Вот мой код:
<?php
$file = file_get_contents("http://wapos.ru/video.php?".$_SERVER['QUERY_STRING']);
$file = str_replace("index.php","http://mysite.ru/index.php",$file);
echo $file;
?>

24 Авг 2011, 1:22
MadLion

Axion, я щас те дам готовый код ну по твоему примеру
добавлено спустя 3 минуты:
Axion, вроде бы так(без изменения заголовков)
<?
function get_page($url,$r) {
$context = stream_context_create(array(
       'http' => array(
       'method' => 'GET',
       'referer' => $r,
       'content' => '',
       ),)
    );

     $result = file_get_contents($url, 0, $context);

    return $result;
 }
$file=get_page("http://wapos.ru/video.php?".$_SERVER['QUERY_STRING'],"http://mysite.ru"); //mysite.ru это реферер
$file = str_replace("index.php","http://mysite.ru/index.php",$file);
echo $file;
?>

24 Авг 2011, 1:29
Axion

Axion, спасибо огромное, протестил бы, дак хостинг опять лежит (vipvds.ru)

24 Авг 2011, 1:30
Ответить на тему