GoogleやBingのBotに対してログを残さないようにしていますが、PHPでIP範囲を特定し無効化する必要があったため、functionをつくってみました
//IP範囲チェック
function chkIpRange($accept){
$remoteIp = $_SERVER['REMOTE_ADDR'];
list($acceptIp, $mask) = explode('/', $accept);
$acceptLong = ip2long($acceptIp) >> (32 - $mask);
$remoteLong = ip2long($remoteIp) >> (32 - $mask);
if ($acceptLong == $remoteLong) {
return 1;
} else {
return 0;
}
}
$rec = 0;
//Botチェック(以下はGoogleなどのIP群)
if( chkIpRange('66.249.64.0/19') ) $rec = 1;
if( chkIpRange('66.249.92.0/24') ) $rec = 1;
if( chkIpRange('72.14.192.0/18') ) $rec = 1;
if( chkIpRange('74.125.0.0/16') ) $rec = 1;
//処理飛ばす
if($rec == 1) return;
アクセスしてきたIPアドレスが、サブネットマスクを含んだ指定のIPアドレスに該当するものかどうか、これで判断して処理を分けることができまいした。