FT12短網址教你如何甄別真假百度蜘蛛
盡管百度的口碑并不好,可是不可否認的是,它一直是中文搜索中的霸主,所以對大多數中小型商業公司而言,都對baidu蜘蛛的抓取做法予以放行,不過還有許多不合法的蜘蛛,它們會經過 User-Agent 把自個偽裝成baidu蜘蛛,此刻如果單純以 User-Agent 來判別是不是是baidu蜘蛛就不適宜了。盡管網上能找到許多現成的baidu蜘蛛 IP 段,可是并不能確認它們的準確性,所以我計劃自個搜集,進而鑒別真假baidu蜘蛛。
實際上baidu在常見問題解答中給出了鑒其他辦法:當有 User-Agent 是 Baiduspider 的懇求時,咱們能夠經過 host 指令反解 ip 來判別,Baiduspider 的 hostname 以 *.baidu.com 或 *.baidu.jp 的格局命名,其它的則能夠視為不合法的蜘蛛。短網址的后臺也經常見到這些IP的訪問。
留意:有的baidu蜘蛛服務器并不遵守此規矩,本事例中無視它們。
為何baidu不自動發布它自個的 IP 段呢?這么咱們就方便了??!答案八成是由于它怕他人封禁短網址,正所謂君子坦蕩蕩,小人常戚戚。比方 AWS 就發布了自個的 IP 段。
下面咱們將測驗經過 log 歷史數據來找出真實的baidu蜘蛛,假設 log 格局如下;
1.2.3.4 … “Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)”
簡略 shell 即可完成,經過剖析我的 log,終究能夠拿到幾百個baidu蜘蛛的 IP:
shell> awk '$0 ~ "Baiduspider" {print $1}' /path/to/log \ | xargs -n1 -I {} sh -c 'echo -en {} "\t"; host {}' \ | awk '$NF ~ "\\.baidu\\.(com|jp)\\.$" {print $1}' > baidu 123.125.71.100 123.125.71.101 123.125.71.102 123.125.71.103 123.125.71.104 123.125.71.105 ...
由于成果集太臃腫了,所以我拍腦袋做了一個 24 位的 CIDR 處理:
shell> awk -F. -v OFS=. '{print $1, $2, $3, "0/24"}' baidu | sort -u 119.63.195.0/24 119.63.198.0/24 123.125.66.0/24 123.125.71.0/24 180.76.15.0/24 180.76.5.0/24 220.181.108.0/24
此外,以下 IP 是我經過其他路徑獲取的baidu IP 列表,其間有些數據無法經過 hostname 的辦法來辨認,可是經過FT12短網址的判別,根本能夠判定屬于baidu,咱們能夠自行判別:
61.135.165.0/24 61.135.169.0/24 61.135.190.0/24 111.206.36.0/24 112.80.254.0/24 115.239.212.0/24 123.125.67.0/24 220.181.51.0/24 220.181.165.0/24
如此成果集就精簡多了,以后短網址和短鏈接的后臺如果發現這些IP,大家就明白了。今后再有 User-Agent 是 Baiduspider 的懇求進來時,咱們只需簡略判別一下 IP 是不是在 CIDR 成果中即可,是則予以放行。當然,這篇文章中baidu蜘蛛的 IP 數據也能夠用在其他地方,比方制止baidu訪問。
掃描二維碼推送至手機訪問。
版權聲明:本文由短鏈接發布,如需轉載請注明出處。
本文鏈接:http://www.virginiabusinesslawupdate.com/article_311.html