博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转载]识别真假搜索引擎(搜索蜘蛛)方法
阅读量:5302 次
发布时间:2019-06-14

本文共 1674 字,大约阅读时间需要 5 分钟。

  • 怎么样识别搜索蜘蛛

 

搜索引擎基本上由最先google,和国内的baidu统一了。刚开始比较混乱,后期有很多规则协议,可以遵循。基本上一些新兴的搜索引擎在访问站点时候,都会延用google制定的一些规则。它们一般都会有特定的user-agent,但是,如果我们只通过user-agent去识别搜索蜘蛛的话,那样第三方抓取程序,都会去伪造个user-agent。变成搜索蜘蛛的,如:Googlebot/2.1 (+是,google蜘蛛的值。

现在一般搜索引擎都提供一个DNS 反向IP查询功能,只需要把访问来的IP 通过反向查询域名,看是不是搜索引擎域名。这样伪造的爬虫工具,就会被很容易识别了。 具体识别真假蜘蛛只需要:1,判断user-agent是否满足蜘蛛格式 2,然后进一步确定IP 反解析域名是否属于该搜索引擎域名.

搜索引擎 user-agent(包含) 是否PTR 备注
google Googlebot host ip  得到域名:googlebot.com主域名
baidu Baiduspider host ip  得到域名:*.baidu.com 或 *.baidu.jp
yahoo Yahoo! host ip  得到域名:inktomisearch.com主域名
Sogou Sogou ×

*Sogou web spider/3.0(+ *Sogou Push Spider/3.0(+

网易 YodaoBot × *Mozilla/5.0 (compatible; YodaoBot/1.0; )
MSN MSNBot host ip  得到域名:live.com主域名
360 360Spider × Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.11)  Firefox/1.5.0.11; 360Spider
soso Sosospider × Sosospider+(+http://help.soso.com/webspider.htm)
bing bingbot host ip  得到域名:msn.com主域名

以上是我整理一些常用搜索引擎的user-agent特征码,以及IP反向解析情况。保证准确识别搜索引擎,我们通过IP反解析是最为准确方法。好在google,baidu,bing都有做反向解析。基本上占用了80%搜索市场了。下面,我是我检测方法。

  • PHP反解析IP方法

array('Googlebot','googlebot.com'), 'baidu'=>array('Baiduspider','.baidu.'), 'yahoo'=>array('Yahoo!','inktomisearch.com'), 'msn'=>array('MSNBot','live.com'), 'bing'=>array('bingbot','msn.com') ); if(!preg_match('/^(\d{1,3}\.){3}\d{1,3}$/',$ip)) return false; if(empty($ua)) return false; foreach ($spider_list as $k=>$v) { ///如果找到了 if(stripos($ua,$v[0])!==false) { $domain = gethostbyaddr($ip); if($domain && stripos($domain,$v[1])!==false) { return $k; } } } return false;}

 

目前只加入几个搜索引擎检测,这些是可以做反解析查询的。不能做反解析查询的,最好做速度限制,用户会使用它们来伪造搜索引擎来抓取你的资源。欢迎大家交流,先写到这里了。

转载于:https://www.cnblogs.com/iack/p/3558560.html

你可能感兴趣的文章
ubuntu 安装后的配置
查看>>
web前端之路,js的一些好书(摘自聂微东 )
查看>>
【模板】对拍程序
查看>>
【转】redo与undo
查看>>
解决升级系统导致的 curl: (48) An unknown option was passed in to libcurl
查看>>
Java Session 介绍;
查看>>
spoj TBATTLE 质因数分解+二分
查看>>
Django 模型层
查看>>
dedecms讲解-arc.listview.class.php分析,列表页展示
查看>>
Extjs6 经典版 combo下拉框数据的使用及动态传参
查看>>
【NodeJS】http-server.cmd
查看>>
研磨JavaScript系列(五):奇妙的对象
查看>>
面试题2
查看>>
selenium+java iframe定位
查看>>
P2P综述
查看>>
第五章 如何使用Burp Target
查看>>
Sprint阶段测试评分总结
查看>>
sqlite3经常使用命令&语法
查看>>
linux下编译openjdk8
查看>>
【python】--迭代器生成器装饰器
查看>>