国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

PHP判斷來訪是搜索引擎蜘蛛還是普通用戶的代碼小結

2024-05-04 23:39:02
字體:
供稿:網(wǎng)友

這篇文章主要介紹了PHP判斷來訪是搜索引擎蜘蛛還是普通用戶的代碼小結,多種方法總有一種適合你,防止搜索引擎蜘蛛拖死搜索引擎

1、推薦的一種方法:php判斷搜索引擎蜘蛛爬蟲還是人為訪問代碼,摘自Discuz x3.2

 

 
  1. <?php 
  2. function checkrobot($useragent=''){ 
  3. static $kw_spiders = array('bot''crawl''spider' ,'slurp''sohu-search''lycos''robozilla'); 
  4. static $kw_browsers = array('msie''netscape''opera''konqueror''mozilla'); 
  5.  
  6. $useragent = strtolower(empty($useragent) ? $_SERVER['HTTP_USER_AGENT'] : $useragent); 
  7. if(strpos($useragent, 'http://') === false && dstrpos($useragent, $kw_browsers)) return false
  8. if(dstrpos($useragent, $kw_spiders)) return true
  9. return false
  10. function dstrpos($string, $arr, $returnvalue = false) { 
  11. if(empty($string)) return false
  12. foreach((array)$arr as $v) { 
  13. if(strpos($string, $v) !== false) { 
  14. $return = $returnvalue ? $v : true
  15. return $return
  16. return false
  17. if(checkrobot()){ 
  18. echo '機器人爬蟲'
  19. }else
  20. echo '人'
  21. ?> 

實際應用中可以這樣判斷,直接不是搜索引擎才執(zhí)行操作

 

 
  1. <?php 
  2. if(!checkrobot()){ 
  3. //do something 
  4. ?> 

2、第二種方法:

使用PHP實現(xiàn)蜘蛛訪問日志統(tǒng)計

 

 
  1. $useragent = addslashes(strtolower($_SERVER['HTTP_USER_AGENT'])); 
  2.  
  3. if (strpos($useragent, 'googlebot')!== false){$bot = 'Google';} 
  4. elseif (strpos($useragent,'mediapartners-google') !== false){$bot = 'Google Adsense';} 
  5. elseif (strpos($useragent,'baiduspider') !== false){$bot = 'Baidu';} 
  6. elseif (strpos($useragent,'sogou spider') !== false){$bot = 'Sogou';} 
  7. elseif (strpos($useragent,'sogou web') !== false){$bot = 'Sogou web';} 
  8. elseif (strpos($useragent,'sosospider') !== false){$bot = 'SOSO';} 
  9. elseif (strpos($useragent,'360spider') !== false){$bot = '360Spider';} 
  10. elseif (strpos($useragent,'yahoo') !== false){$bot = 'Yahoo';} 
  11. elseif (strpos($useragent,'msn') !== false){$bot = 'MSN';} 
  12. elseif (strpos($useragent,'msnbot') !== false){$bot = 'msnbot';} 
  13. elseif (strpos($useragent,'sohu') !== false){$bot = 'Sohu';} 
  14. elseif (strpos($useragent,'yodaoBot') !== false){$bot = 'Yodao';} 
  15. elseif (strpos($useragent,'twiceler') !== false){$bot = 'Twiceler';} 
  16. elseif (strpos($useragent,'ia_archiver') !== false){$bot = 'Alexa_';} 
  17. elseif (strpos($useragent,'iaarchiver') !== false){$bot = 'Alexa';} 
  18. elseif (strpos($useragent,'slurp') !== false){$bot = '雅虎';} 
  19. elseif (strpos($useragent,'bot') !== false){$bot = '其它蜘蛛';} 
  20. if(isset($bot)){ 
  21. $fp = @fopen('bot.txt','a'); 
  22. fwrite($fp,date('Y-m-d H:i:s')."/t".$_SERVER["REMOTE_ADDR"]."/t".$bot."/t".'http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]."/r/n"); 
  23. fclose($fp); 

第三種方法:

我們可以通過HTTP_USER_AGENT來判斷是否是蜘蛛,搜索引擎的蜘蛛都有自己的獨特標志,下面列取了一部分。

 

 
  1. function is_crawler() {  
  2. $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);  
  3. $spiders = array(  
  4. 'Googlebot'// Google 爬蟲  
  5. 'Baiduspider'// 百度爬蟲  
  6. 'Yahoo! Slurp'// 雅虎爬蟲  
  7. 'YodaoBot'// 有道爬蟲  
  8. 'msnbot' // Bing爬蟲  
  9. // 更多爬蟲關鍵字  
  10. );  
  11. foreach ($spiders as $spider) {  
  12. $spider = strtolower($spider);  
  13. if (strpos($userAgent, $spider) !== false) {  
  14. return true;  
  15. }  
  16. }  
  17. return false;  

下面的php代碼附帶了更多的蜘蛛標識

 

 
  1. function isCrawler() {  
  2. echo $agent= strtolower($_SERVER['HTTP_USER_AGENT']);  
  3. if (!empty($agent)) {  
  4. $spiderSite= array(  
  5. "TencentTraveler",  
  6. "Baiduspider+",  
  7. "BaiduGame",  
  8. "Googlebot",  
  9. "msnbot",  
  10. "Sosospider+",  
  11. "Sogou web spider",  
  12. "ia_archiver",  
  13. "Yahoo! Slurp",  
  14. "YoudaoBot",  
  15. "Yahoo Slurp",  
  16. "MSNBot",  
  17. "Java (Often spam bot)",  
  18. "BaiDuSpider",  
  19. "Voila",  
  20. "Yandex bot",  
  21. "BSpider",  
  22. "twiceler",  
  23. "Sogou Spider",  
  24. "Speedy Spider",  
  25. "Google AdSense",  
  26. "Heritrix",  
  27. "Python-urllib",  
  28. "Alexa (IA Archiver)",  
  29. "Ask",  
  30. "Exabot",  
  31. "Custo",  
  32. "OutfoxBot/YodaoBot",  
  33. "yacy",  
  34. "SurveyBot",  
  35. "legs",  
  36. "lwp-trivial",  
  37. "Nutch",  
  38. "StackRambler",  
  39. "The web archive (IA Archiver)",  
  40. "Perl tool",  
  41. "MJ12bot",  
  42. "Netcraft",  
  43. "MSIECrawler",  
  44. "WGet tools",  
  45. "larbin",  
  46. "Fish search",  
  47. );  
  48. foreach($spiderSite as $val) {  
  49. $str = strtolower($val);  
  50. if (strpos($agent, $str) !== false) {  
  51. return true;  
  52. }  
  53. }  
  54. else {  
  55. return false;  
  56. }  
  57. }  
  58. if (isCrawler()){  
  59. echo "你好蜘蛛精!";  
  60. }  
  61. else{  
  62. echo "你不是蜘蛛精啊!";  

第四種方法:

 

 
  1. <?php 
  2. $flag = false
  3. $tmp = $_SERVER['HTTP_USER_AGENT']; 
  4. if(strpos($tmp, 'Googlebot') !== false){ 
  5. $flag = true
  6. else if(strpos($tmp, 'Baiduspider') >0){ 
  7. $flag = true
  8. else if(strpos($tmp, 'Yahoo! Slurp') !== false){ 
  9. $flag = true
  10. else if(strpos($tmp, 'msnbot') !== false){ 
  11. $flag = true
  12. else if(strpos($tmp, 'Sosospider') !== false){ 
  13. $flag = true
  14. else if(strpos($tmp, 'YodaoBot') !== false || strpos($tmp, 'OutfoxBot') !== false){ 
  15. $flag = true
  16. else if(strpos($tmp, 'Sogou web spider') !== false || strpos($tmp, 'Sogou Orion spider') !== false){ 
  17. $flag = true
  18. else if(strpos($tmp, 'fast-webcrawler') !== false){ 
  19. $flag = true
  20. else if(strpos($tmp, 'Gaisbot') !== false){ 
  21. $flag = true
  22. else if(strpos($tmp, 'ia_archiver') !== false){ 
  23. $flag = true
  24. else if(strpos($tmp, 'altavista') !== false){ 
  25. $flag = true
  26. else if(strpos($tmp, 'lycos_spider') !== false){ 
  27. $flag = true
  28. else if(strpos($tmp, 'Inktomi slurp') !== false){ 
  29. $flag = true
  30. if($flag == false){ 
  31. header("Location: http://m.survivalescaperooms.com" . $_SERVER['REQUEST_URI']); 
  32. // 自動轉(zhuǎn)到http://m.survivalescaperooms.com 對應的網(wǎng)頁 
  33. // $_SERVER['REQUEST_URI'] 為域名后面的路徑 
  34. // 或換成header("Location: http://m.survivalescaperooms.com/abc/d.php"); 
  35. exit(); 
  36. ?> 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 汽车| 抚远县| 乌鲁木齐市| 仁寿县| 巴彦县| 黄梅县| 孙吴县| 克拉玛依市| 逊克县| 广汉市| 广州市| 额济纳旗| 偏关县| 调兵山市| 沐川县| 弥勒县| 旺苍县| 栾川县| 万安县| 太原市| 巩留县| 永年县| 阿坝县| 法库县| 南郑县| 如皋市| 东至县| 临沂市| 平凉市| 安图县| 濉溪县| 封丘县| 民乐县| 新晃| 喀喇| 蓬溪县| 闻喜县| 武城县| 屏山县| 黄冈市| 平和县|