【网站代码】检查搜索引擎蜘蛛爬虫真实性 PHP版

  • 内容
  • 相关
我们很多时候都会遇到伪造搜索引擎爬虫的UA,但是很多时候又无法判断他的真实性。

以下代码,为检验部分搜索引擎真实性的案例,如有更多方法,请回复评论。

因为英语不太好,所以下面的内容就有部分中文了。
  1. <?php
  2. if(getspider()){
  3. exit('假的搜索引擎!');
  4. }
  5. function getspider(){
  6. $访问UA = strtolower($_SERVER['HTTP_USER_AGENT']);
  7. $访问IP = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
  8. if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
  9. $list = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
  10. $访问IP = $list[0];
  11. }
  12. if (!ip2long($访问IP)) $访问IP = '未知IP';
  13. $访问主机 = str_replace('.', '-', $访问IP);
  14. if (strpos($访问UA, 'googlebot') !== false){
  15. $解析主机 = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  16. if ($解析主机 != 'crawl-'.$访问主机.'.googlebot.com') return 'googlebot?';
  17. }
  18.  
  19. if (strpos($访问UA, 'sogou') !== false){
  20. $解析主机 = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  21. if ($解析主机 != 'sogouspider-'.$访问主机.'.crawl.sogou.com') return 'sogou';
  22. }
  23. if (strpos($useragent, 'bing') !== false){
  24. $解析主机 = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  25. if ($解析主机 != 'msnbot-'.$访问主机.'.search.msn.com') return 'bing';
  26. }
  27. if (strpos($访问UA, 'baiduspider') !== false){
  28. $解析主机 = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  29. if ($解析主机 != 'baiduspider-'.$访问主机.'.crawl.baidu.com') return 'baiduspider?';
  30. }
  31. return false;
  32. }
如果你觉得雨滴资源网对你有帮助的话,可以小小的打赏一下小站,用于维持本站的运营!

本文标签:

版权声明:雨滴资源网内容来源于互联网,如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!

本文链接:【网站代码】检查搜索引擎蜘蛛爬虫真实性 PHP版 - https://www.yudzy.com/495.html

失效提示:此文更新于2019-7-12,如果文章内容或图片资源失效,请留言反馈,客服会及时处理,谢谢!