PHP CURLでリファラーとユーザーエージェントを設定してWebページを取得

PHP CURLでHTTPヘッダーのリファラーとユーザーエージェント設定してリクエストを発行し、Webページを取得してみます。

(1)HTTPヘッダーを確認する方法


 
サンプルプログラムを実行した際に正しくHTTPヘッダーが設定されているか確認する必要があります。
 
1)Webパケットモニタリングツールでモニタする
 
例えば下記ツールをインストールしてモニタします。
Fiddler
 
・ブラウザによる通信は、Fiddlerを起動すると自動でモニタできます。
 
・PHP CURLを使った通信をモニタリングする場合は、下記のようにプロキシーのポートの設定を行います。
curl_setopt($sc, CURLOPT_PROXY, ‘127.0.0.1:8888’);
 
2)Apacheのアクセスログで確認する
 
ローカル環境など自分が管理するWebサーバーを使って動作確認する場合は、Webサーバーのアクセスログで確認する事が出来ます。
 
Apacheのログ設定で、リファラーとユーザーエージェントを記録する場合の例です。
 
(設定例)
LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
CustomLog “logs/access.log” combined
 
 

(2)PHP CURLサンプルプログラム


 
1)リファラーとユーザーエージェントの設定
 
下記のようにして設定できます。
curl_setopt($sc, CURLOPT_USERAGENT, $agent);
curl_setopt($sc, CURLOPT_REFERER, $ref);
 
2)サンプルプログラム

<?php

$target = "http://localhost/index.html";
$agent = "test agent";
$ref = "http://localhost/about.html";

$sc = curl_init();

curl_setopt($sc, CURLOPT_URL, $target);
curl_setopt($sc, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($sc, CURLOPT_USERAGENT, $agent); 
curl_setopt($sc, CURLOPT_REFERER, $ref);
curl_setopt($sc, CURLOPT_PROXY, '127.0.0.1:8888');//Fiddler監視用

$return = curl_exec($sc); 

curl_close($sc);

var_dump($return);

?>

3)Apacheアクセスログの確認
 
127.0.0.1 – – [15/Oct/2014:11:56:26 +0900] “GET /index.html HTTP/1.1” 200 44 “http://localhost/about.html” “test agent”

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です