久しぶりにPHPネタ。
WEBサイトを管理してると、「自分のサイトに検索サイトは気付いてる?」 なんて心配になることはありませんか?私はあります。まぁ、このブログはどーでもイイんですが、お客サマのサイトなんかだと納品後しばらくすると気になったりしますよね。
最近の検索は「ロボット検索」が主流ですね。これは「ボット(bot)」と呼ばれる「無差別情報収集プログラム」がネットを自動的に徘徊して集めた無数のサイトの情報を自社のデータベースに溜め込み、自分の検索サイトからパッと検索できるようにする方法です。
「自社」とはGoogle/Yahoo!/MSNなどの検索サイト運営側のこと。つまり大抵の検索サイトでは、それぞれにボットを飼っているということですね。
それでは、これらのボットが、自分の管理するサイト(ホームページ)にも巡回しに来てるのでしょうか。ちょっと捕獲してみましょう。
[code lang=”php” -0]
//FileName : botcatch.php
function logbot(myurl){
$host = gethostbyaddr(getenv(‘REMOTE_ADDR’));
if(preg_match(“/\.(googlebot|inktomisearch|msn)\.com$/i”,$host)) {
$logfile= ‘/★ログフォルダ/botlog_’.gmdate(“Ymd”, time()+9*60*60).’.log’;
$now = gmdate(“Y/m/d H:i:s”, time()+9*60*60);
$ua = getenv(“HTTP_USER_AGENT”);
$rec= $now.”\t”.$myurl.”\t”.$host.”\t”.$ua.”\n”;
$fp = @fopen($logfile, “a”);
@flock($fp,2);
@fwrite($fp,$rec);
@flock($fp,3);
@fclose($fp);
}
}
?>
[/code]
とか作っておいて、サイトやBlogのindex.phpとかに、
[code]
require_once(“botcatch.php”);
if(preg_match(“/(Google|Slurp|msn)/i”,getenv(“HTTP_USER_AGENT”))) {
$myurl = $_SERVER[‘REQUEST_URI’];
logbot($myurl);
}
[/code]
なんて適当に入れておけば、「★ログフォルダ(任意のPath)」にGoogle/Yahoo!/MSNのボットの足跡が残ります。
巡回されたURIも一緒に記録するので、Blogとかの場合だと記事番号とかの引数も残るので、どのページに来たのかも分かります(UserAgentとHostの2段階判別なので、偽ボットは無視します)
単なる粗雑なアクセスログじゃないか!という野暮な突っ込みはご遠慮申し上げます(^^;
久しぶりにログを摂ってみて分かったのですが、最近は、Yahoo!Japan独自で携帯検索用のボットを大量に派遣してるみたいですね。UAに、「 Y!J 」 を追加して、Hostに 「\.yahoo\.co\.jp」 を追加すればそれも拾えます。
・・・と、SOHOプログラマらしい記事を書いてみるテスト(・ω・)
コメント
こんにちは! 磁力大好きな サイト作成者です。恵方の「有効距離」を調べていて「あちこち方位」にたどり着きました。毎日この時期になるとアクセスがふえるので、自分でも「位置」を貼るものを作ってみたんですが・・・ 「秀作」に出逢い URLを貼らせていただきたく ご挨拶と お願いです。 ご意向に沿いませんでしたらご連絡ください。即効 外しますので。 まずはご連絡まで
亀レスすみません!「恵方の有効距離」!まさにそういったマニア仲間のために公開しておりますので、どうかガシガシ利用して楽しんでくださいませ♬今後とも「あちこち方位」をよろしくです