如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章主要介绍"如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户",在日常操作中,相信很多人在如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2025年11月13日如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户
这篇文章主要介绍"如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户",在日常操作中,相信很多人在如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1、推荐的一种方法:php判断搜索引擎蜘蛛爬虫还是人为访问代码,摘自Discuz x3.2
实际应用中可以这样判断,直接不是搜索引擎才执行操作
2、第二种方法:
使用PHP实现蜘蛛访问日志统计
$useragent = addslashes(strtolower($_SERVER['HTTP_USER_AGENT'])); if (strpos($useragent, 'googlebot')!== false){$bot = 'Google';} elseif (strpos($useragent,'mediapartners-google') !== false){$bot = 'Google Adsense';} elseif (strpos($useragent,'baiduspider') !== false){$bot = 'Baidu';} elseif (strpos($useragent,'sogou spider') !== false){$bot = 'Sogou';} elseif (strpos($useragent,'sogou web') !== false){$bot = 'Sogou web';} elseif (strpos($useragent,'sosospider') !== false){$bot = 'SOSO';} elseif (strpos($useragent,'360spider') !== false){$bot = '360Spider';} elseif (strpos($useragent,'yahoo') !== false){$bot = 'Yahoo';} elseif (strpos($useragent,'msn') !== false){$bot = 'MSN';} elseif (strpos($useragent,'msnbot') !== false){$bot = 'msnbot';} elseif (strpos($useragent,'sohu') !== false){$bot = 'Sohu';} elseif (strpos($useragent,'yodaoBot') !== false){$bot = 'Yodao';} elseif (strpos($useragent,'twiceler') !== false){$bot = 'Twiceler';} elseif (strpos($useragent,'ia_archiver') !== false){$bot = 'Alexa_';} elseif (strpos($useragent,'iaarchiver') !== false){$bot = 'Alexa';} elseif (strpos($useragent,'slurp') !== false){$bot = '雅虎';} elseif (strpos($useragent,'bot') !== false){$bot = '其它蜘蛛';} if(isset($bot)){ $fp = @fopen('bot.txt','a'); 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"); fclose($fp); }第三种方法:
我们可以通过HTTP_USER_AGENT来判断是否是蜘蛛,搜索引擎的蜘蛛都有自己的独特标志,下面列取了一部分。
function is_crawler() { $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']); $spiders = array( 'Googlebot', // Google 爬虫 'Baiduspider', // 百度爬虫 'Yahoo! Slurp', // 雅虎爬虫 'YodaoBot', // 有道爬虫 'msnbot' // Bing爬虫 // 更多爬虫关键字 ); foreach ($spiders as $spider) { $spider = strtolower($spider); if (strpos($userAgent, $spider) !== false) { return true; } } return false; }下面的php代码附带了更多的蜘蛛标识
function isCrawler() { echo $agent= strtolower($_SERVER['HTTP_USER_AGENT']); if (!empty($agent)) { $spiderSite= array( "TencentTraveler", "Baiduspider+", "BaiduGame", "Googlebot", "msnbot", "Sosospider+", "Sogou web spider", "ia_archiver", "Yahoo! Slurp", "YoudaoBot", "Yahoo Slurp", "MSNBot", "Java (Often spam bot)", "BaiDuSpider", "Voila", "Yandex bot", "BSpider", "twiceler", "Sogou Spider", "Speedy Spider", "Google AdSense", "Heritrix", "Python-urllib", "Alexa (IA Archiver)", "Ask", "Exabot", "Custo", "OutfoxBot/YodaoBot", "yacy", "SurveyBot", "legs", "lwp-trivial", "Nutch", "StackRambler", "The web archive (IA Archiver)", "Perl tool", "MJ12bot", "Netcraft", "MSIECrawler", "WGet tools", "larbin", "Fish search", ); foreach($spiderSite as $val) { $str = strtolower($val); if (strpos($agent, $str) !== false) { return true; } } } else { return false; } } if (isCrawler()){ echo "你好蜘蛛精!"; } else{ echo "你不是蜘蛛精啊!"; }第四种方法:
0){ $flag = true;} else if(strpos($tmp, 'Yahoo! Slurp') !== false){ $flag = true;} else if(strpos($tmp, 'msnbot') !== false){ $flag = true;} else if(strpos($tmp, 'Sosospider') !== false){ $flag = true;} else if(strpos($tmp, 'YodaoBot') !== false || strpos($tmp, 'OutfoxBot') !== false){ $flag = true;} else if(strpos($tmp, 'Sogou web spider') !== false || strpos($tmp, 'Sogou Orion spider') !== false){ $flag = true;} else if(strpos($tmp, 'fast-webcrawler') !== false){ $flag = true;} else if(strpos($tmp, 'Gaisbot') !== false){ $flag = true;} else if(strpos($tmp, 'ia_archiver') !== false){ $flag = true;} else if(strpos($tmp, 'altavista') !== false){ $flag = true;} else if(strpos($tmp, 'lycos_spider') !== false){ $flag = true;} else if(strpos($tmp, 'Inktomi slurp') !== false){ $flag = true;}if($flag == false){ header("Location: https://www.jb51.net" . $_SERVER['REQUEST_URI']); // 自动转到https://www.jb51.net 对应的网页 // $_SERVER['REQUEST_URI'] 为域名后面的路径 // 或换成header("Location: https://www.jb51.net/abc/d.php"); exit();}?>到此,关于"如何利用PHP判断来访是搜索引擎蜘蛛还是普通用户"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
蜘蛛
引擎
搜索引擎
搜索
爬虫
还是
方法
普通
用户
更多
学习
代码
蜘蛛精
雅虎
帮助
实用
独特
接下来
你好
关键
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海个人软件开发管理办法
中小学生网络安全要注意哪些
MIDI键盘软件开发
服务器安全管理
软件开发大神装什么葫芦
知识产权网络安全共享
上海夺畅网络技术有限公司上班怎么样
无锡市网络安全大队
网络安全面临的主要威胁是3种
大话四下服务器哪个最快到四上
数据库表唯一约束是什么
穿越火线登录后选不了服务器
我的世界怎么在服务器开登录插件
软件开发服务内容怎么写
设备和网络安全专用
芯片软件开发应掌握的技能
网络安全体系结构研究
数据库工程师培训机构哪个好一些
安徽信息软件开发价格
西安软件开发培训好学吗
sql数据库输入键
软件开发绩效占比
云顶之巅手游国际服服务器选哪个
网络安全管理和网络运营
程序软件开发哪家便宜
怎么加强网络安全工作
初中网络安全漫画一等奖
数据库方面的书籍推荐
服务器机房搭建接地
mvc获取数据库