// 検索ロボットの検出。2008年8月8日現在
// 正規表現以外の正規表現のメタ文字( ^ . \ + * ? [ ] ( ) $ など)は
// \でエスケープすること。
function bot_check()
{
$bot_ip_list = array(
'^66\.35\.255\.', // TrendMicro
'^66\.180\.82\.', // TrendMicro
'^128\.241\.20\.', // TrendMicro
'^150\.70\.84\.', // TrendMicro
);
$bot_host_list = array(
'asianetcom\.net$',
'\.ask\.com$',
'copilot\.thunderstone\.com$',
'\.crawl\.yahoo\.net$',
'crawl11\.pub\.colo-fo\.brn1\.verisign\.com$',
'cuill\.com$',
'\.exabot\.com$',
'\.googlebot\.com$',
'\.inktomisearch\.com$',
'\.irl\.cs\.tamu\.edu$',
'msnbot\.msn\.com$',
'picsearch\.com$',
'\.pingdom\.com$',
'search\.tnz\.yahoo\.co\.jp$',
'\.search\.live\.com$',
'\.teoma\.com$',
'\.yahooresearchcluster\.com$',
);
$bot_agent_list = array(
'Ask Jeeves/Teoma',
'Baiduspider\+',
'BecomeJPBot',
'bot/',
'bot@bot\.bot',
'compatible; Yahoo! Slurp;',
'/~crawler/',
'\(\+Empirius bot\)',
'Exabot/',
'Googlebot/',
'ichiro/',
'IRLbot/',
'libwww-perl/',
'Microsoft-WebDAV-MiniRedir/',
'MJ[0-9\.]+bot',
'Mnogosearch',
'msnbot',
'Netcraft Web Server Survey',
'PEAR-crawler',
'Pingdom\.com/tools',
'Pingdom GIGRIB',
'psbot/',
'SurveyBot/',
'Shim-Crawler',
'Sogou Orion Spider/',
'TMCrawler',
'Twiceler',
'Wget/',
'Y!J-DSC',
'Y!J-VSC',
'Y!J-PSC',
'Y!J-NSC',
'Y!J-SRD',
'Yeti/',
'yetibot@naver\.com,',
'YodaoBot/',
);
$ip = $_SERVER['REMOTE_ADDR'];
$host = isset($_SERVER['REMOTE_HOST'])?$_SERVER['REMOTE_HOST']:'';
$agent = isset($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:'';
foreach($bot_ip_list as $bot_ip)
{
if(ereg($bot_ip, $ip))
{
return(TRUE);
}
}
if($host)
{
foreach($bot_host_list as $bot_host)
{
if(ereg($bot_host, $host))
{
return(TRUE);
}
}
}
if($agent)
{
foreach($bot_agent_list as $bot_agent)
{
if(ereg($bot_agent, $agent))
{
return(TRUE);
}
}
}
else
{
return(TRUE);
}
vreturn(FALSE);
}