蜘蛛IP不僅可以根據(jù)經(jīng)典配置UA也可以通過(guò)通過(guò)IP分段識(shí)別蜘蛛,并能實(shí)現(xiàn)雙重識(shí)別。
根據(jù)IP識(shí)別蜘蛛,可以實(shí)現(xiàn)訪客屏蔽,即使游客模擬蜘蛛抓取,也看不到真正的頁(yè)面HTML。在“新程序已經(jīng)上線”最新“給大家科普一下XXXXX”在泛二級(jí)程序中,可以看到訪客IP并通過(guò)地址IP如果沒(méi)有訪客,請(qǐng)確定是否可以瀏覽和查詢。IP設(shè)定的IP在該段中,自定文檔直接跳轉(zhuǎn),如404.html就行了。具體代碼如下:$arr=array('220.196.160','220.181.32','220.181.7','220.181.68','220.181.51','104.233.164','113.24.225','220.181.108','220.181.32','194.233.65','193.42.114','185.244.39','180.149.133','180.76.15','180.76.5','158.247.209','149.248.20','149.28.225','149.28.84','144.202.122','139.180.200','124.166.232','123.125.71','123.125.66','119.63.199','119.63.198','116.179.37','116.179.32','111.206.198');
//獲取訪客IP并將地址轉(zhuǎn)換為數(shù)組
$iparr=explode('.',$_SERVER['REMOTE_ADDR']);
///IP段,如 220.181.108
$spiderid=$iparr[0].'.'.$iparr[1].'.'.$iparr[2];
if(in_array($spiderid,$arr)){
echo請(qǐng)繼續(xù)瀏覽網(wǎng)站內(nèi)容!
}else{
//header("Location:http://yinyiprinting.cn");
$url='502.phpphp或靜態(tài)文件)
$html=file_get_contents($url);
echo$html;///導(dǎo)出您向非蜘蛛展示的內(nèi)容(可以屏蔽訪客或跳轉(zhuǎn))
exit();
}
?>
一般來(lái)說(shuō),網(wǎng)站權(quán)重蜘蛛只能查詢,所以只能設(shè)置220.181和116.179的IP就這樣。我們之前也發(fā)過(guò)類似的《通過(guò)偽靜態(tài)將垃圾蜘蛛返回403,將游客返回503的設(shè)置方法》,也能達(dá)到同樣的效果。提到訪客IP,我以前做過(guò)一個(gè)網(wǎng)站,只查詢特定的客戶。后來(lái),我發(fā)現(xiàn)許多用戶無(wú)意識(shí)地與他人分享了這個(gè)網(wǎng)站,所以他們也特別記錄了訪問(wèn)者IP的php,具體記錄可以清除ip段外的訪客IP。編寫的代碼有充分的注釋,感興趣的可以獨(dú)立查詢。error_reporting(E_ERROR);
//獲取訪客IP
$ip=$_SERVER["REMOTE_ADDR"];
//balance作為結(jié)算文件的目錄,文件名稱ip.txt
$file_path="balance/".$ip.'.txt';
///獲得舊文檔的時(shí)間
$oldtime=date("Y-m-d",fileatime($file_path));
//獲取系統(tǒng)時(shí)間
$newbodytime=date("Y-m-d",time());
////首先獲得允許記錄ip.txt,假如瀏覽本界面ip允許記錄ip內(nèi),則紀(jì)錄
$file='ip.txt';
$allow=file_get_contents($file);
if(strpos($allow,$ip)!==false){
//如果系統(tǒng)時(shí)間不等于文檔時(shí)間
if($oldtime!=$newbodytime){
///先計(jì)次
$body=file_get_contents($file_path);
$newbody=number_format($body)1;
unlink($file_path);
file_put_contents($file_path,$newbody,FILE_APPEND);
還輸入詳細(xì)日志
//詳細(xì)日意在log在目錄下,記錄詳細(xì)的啟動(dòng)文件,文件名稱ip.txt
$log_path="log/".$ip.'.txt';
$date=date("Y-n-j H:i:s",time());;
$log_body="OpenTime:$date
";
file_put_contents($log_path,$log_body,FILE_APPEND);
}
}
echo$log_body;
?>有些跑題了,上面的代碼只是訪客IP紀(jì)錄成txt罷了,在Zblog集成的訪客IP記錄插件,更漂亮。整合訪客。IP記錄,添加判斷驗(yàn)證,非許可IP段則跳轉(zhuǎn)。只是常見的基礎(chǔ)UA判斷蜘蛛,設(shè)備跳轉(zhuǎn),這個(gè)IP段跳轉(zhuǎn)限制更大,不需要特定的蜘蛛,一般不需要使用。
新浪微博提問(wèn) 沒(méi)回答我的問(wèn)題 很失望