通过IP反查(nslookup)判断百度蜘蛛IP真假
我们经常会碰到黑客利用伪装蜘蛛扫描网站,今天我们介绍下如何利用IP反查方法,判断蜘蛛是否为百度搜索引擎蜘蛛。
以百度为例,通常我们判断是否是百度蜘蛛抓取看用户代理字符串也就是User-Agent,但是User-Agent是可以模拟的,所以很多时候也会有虚假的模拟伪装成百度蜘蛛来抓取,这时候我们就需要学会分辨真伪。
首先是百度User-Agent代理字符串,百度官方公布的有如下User-Agent:
移动UA:Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,likeGecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)
PC UA:Mozilla/5.0 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)
新增渲染UA:
移动UA:Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 likeMac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143Safari/601.1 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)
PC UA:Mozilla/5.0 (compatible;Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)
需要注意的是百度新增了一个移动的User-Agent,和一个PC的User-Agent。我们知道了百度蜘蛛的User-Agent,如何正确识别和判断某条抓取是否是真实的百度蜘蛛。
如何识别百度蜘蛛
1、首选我们需要通过关键词找User-Agent中是否包含Baiduspider;
2、如果想区分移动和PC的蜘蛛的话,我们还需要在结果中再进行关键词过滤,移动端的User-Agent包含:Android 、iPhone、Mobile等三个中至少一个。
3、通过上述操作我们可以分辨出哪些抓取是百度蜘蛛抓取,但并不能分辨真伪。
判断百度蜘蛛真伪
1、验证百度蜘蛛真伪我们一般使用的是DNS反查IP的方式来进行判断,首选我们需要找到上述抓取记录中蜘蛛的IP。
2、以windows操作系统为例,开始运行中输入cmd 弹出窗口中输入 nslookup (上述IP地址),判断百度蜘蛛的真伪,真是百度蜘蛛结果中会返回以*.baidu.com 或*.baidu.jp 的格式命名hostname,如不包含则为假百度蜘蛛。
常见HTTP状态码解读:
1、200代码,表示蜘蛛爬取正常
2、404代码,访问的这个链接是错误链接
3、301代码,永久重定向
4、302代码,表示临时重定向
5、304代码,客户端已经执行了GET,但文件未变化。
6、500代码,表示网站内部程序或服务器有错