PHP CURLでHTTPヘッダーのリファラーとユーザーエージェント設定してリクエストを発行し、Webページを取得してみます。
※目次をクリックすると目次の下部にコンテンツが表示されます。
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
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
PHP CURLサンプルプログラム
1)リファラーとユーザーエージェントの設定
下記のようにして設定できます。
curl_setopt($sc, CURLOPT_USERAGENT, $agent);
curl_setopt($sc, CURLOPT_REFERER, $ref);
2)サンプルプログラム
下記のようにして設定できます。
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”