2015-12-10 4 views
0

Я пытаюсь использовать CURL для оценки посетителей на моем сайте. Я хотел бы посмотреть, связаны ли они с плохой окрестностью или нет. В большинстве случаев мой текущий код работает, но не всегда.Обнаружение плохой ссылки на источник ссылок, используя CURL

У меня возникли проблемы с тем, чтобы мой CURL смог обмануть все серверы. Как сделать мои заголовки CURL абсолютно убедительными и удалить любые возможные подсказки, которые я использую CURL?

<?php 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"http://www.example.com"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS,$vars); //Post Fields 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$headers = array(); 
$headers[] = 'X-Apple-Tz: 0'; 
$headers[] = 'X-Apple-Store-Front: 143444,12'; 
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; 
$headers[] = 'Accept-Encoding: gzip, deflate'; 
$headers[] = 'Accept-Language: en-US,en;q=0.5'; 
$headers[] = 'Cache-Control: no-cache'; 
$headers[] = 'Content-Type: application/x-www-form-urlencoded; charset=utf-8'; 
$headers[] = 'Host: www.example.com'; 
$headers[] = 'Referer: http://www.example.com/index.php'; //Your referrer address 
$headers[] = 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:28.0) Gecko/20100101 Firefox/28.0'; 
$headers[] = 'X-MicrosoftAjax: Delta=true'; 

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

$server_output = curl_exec ($ch); 

print $server_output; 

curl_close ($ch);  

if (strpos($output,'sex') !== false) 
{ 
    echo 'sex'; 
} 

?> 

Например, некий хорошо известный сайт видео для взрослых с оранжевым логотипом, который очень похож на логотип YouTube (может быть, вы, ребята, знаете, один) ответил так:

403 Forbidden 

Request forbidden by administrative rules. 
__SERVERNAME__ 
+1

использовать отладчик браузера и захватывать ВСЕ заголовки, которые они отправляют, включая файлы cookie. как только вы реплицируете это в curl, не должно быть никакого способа идентифицировать его завиток только с одного запроса. –

+0

Я действительно не эксперт в отладчиках браузера - не могли бы вы мне помочь? –

+0

на firefox, получить httpfox. он позволяет вам проверять все заголовки. –

ответ

1

В хроме средства разработки, вы можете получить полный запрос HTTP хрома, используемый против URL по:

  • открытия Дева инструментов
  • GOTO вкладка «сеть»
  • запросите URL-адрес, который вы хотите - если вы уже находитесь на целевой странице - нажмите F5 или перезагрузите.
    Dev инструменты будут генерировать список HTTP запросов (и ответов) сделали
  • правой кнопки мыши по запросу HTTP/URL вы заинтересованы в
  • нажмите «Сохранить как завиток» вариант, и теперь вы будете иметь полный Детали запроса HTTP (для завивки командной строки) в вашем буфере обмена.

Используя эти значения при отправке HTTP-запроса, ваш запрос будет якобы создан веб-браузером Chrome.

+0

Хорошо, я изменил заголовки, как вы предложили. Но по-прежнему кажется, что меня поймают: 403 Запрещено Запрос запрещен по административным правилам. __SERVERNAME__ –

+0

Да, это довольно упрощенный подход и не гарантированно работает. Но вы пытались напрямую вставить и запустить команду из командной строки с помощью командной строки curl? –

+0

Нет, где я это делаю? :) –

Смежные вопросы