2015-01-10 3 views
0

저는 CURL과 file_get_contents를 사용하여 페이지에 대한 서버 요청과 브라우저 요청 (유기적) 간의 기본적인 차이점을 확인하고 있습니다.PHP에서 보낸 HTTP 헤더

나는 PHPINFO 페이지를 두 가지 방법으로 요청하고 있으며 다른 경우에 다른 출력을 제공한다는 것을 알았습니다. _SERVER [ "HTTP_CACHE_CONTROL"] 내가 PHP를 통해 동일한 페이지를 요청하고 할 때이 정보가없는 노 캐시 : 나는 브라우저를 사용하고 때

는 예를 들어,은 phpinfo이 표시됩니다.

내 CURL :

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "http://www.example.com/phpinfo.php"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0"); 
    curl_setopt($ch, CURLOPT_INTERFACE, $testIP); 
    $output = curl_exec($ch); 
    curl_close($ch); 

내 file_get_contents :

$opts = array(
'socket' => array('bindto' => 'xxx.xx.xx.xx:0'), 
'method' => 'GET', 
'user_agent ' => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0", // this doesn't work 
'header' => array('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*\/*;q=0.8') 
); 

내 목표 : 는 PHP 요청을하려면 브라우저 요청에 동일하게 보인다.

+0

왜 요청이 브라우저 요청처럼 보이길 원하십니까? – Halcyon

+0

@Halcyon 이것은 서버가 일반 브라우저 요청과 다른 방식으로 내 요청을 처리하지 못하도록하기위한 것입니다. –

+0

좋아, 내가 너에게 물어 본 척하는데 ~ 5 번, 그게 정말로하고 싶은지 결정해라. – Halcyon

답변

-1

서버가 PHP를 감지 할 수있는 방법 중 하나는 브라우저가 아니라 쿠키를 확인하는 것입니다. PHP curl 요청을 한 번 서버에 보내고 다음 요청에 도달 한 쿠키를 주입합니다. 여기를 확인하십시오 : http://docstore.mik.ua/orelly/webprog/pcook/ch11_04.htm 서버가 당신이 로봇 (PHP 코드)을 확인하는 다른 방법은 확인 리퍼러 http 헤더입니다. 여기에서 자세히 알아볼 수 있습니다 : http://en.wikipedia.org/wiki/HTTP_referer

관련 문제