一、查看UA信息

如果UA信息不对,可以直接判断为非百度搜索的蜘蛛。目前UA分为移动、PC、和小程序三个应用场景,这三个渠道UA分别如下:

移动UA:

Mozilla/5.0(Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko)Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)

Mozilla/5.0 (iPhone;CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko)Version/9.0 Mobile/13B143 Safari/601.1 (compatible; Baiduspider-render/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)

Mozilla/5.0(compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)

小程序UA:

Mozilla/5.0 (iPhone;CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko)Version/9.0 Mobile/13B143 Safari/601.1 (compatible; Baiduspider-render/2.0;Smartapp; +http://www.baidu.com/search/spider.html)

二、双向DNS解析认证

第一步:DNS反查IP

开发者通过对日志中访问服务器的IP地址运行反向DNS查找,判断某只spider是否来自百度搜索引擎,Baiduspider的hostname以.baidu.com或.baidu.jp 的格式命名,非.baidu.com或.baidu.jp即为冒充。

根据平台不同验证方法不同,如linux/windows/os三种平台下的验证方法分别如下:

1).在linux平台下,您可以使用host ip命令反解ip来判断是否来自Baiduspider的抓取。

2).在windows平台或者IBM OS/2平台下,您可以使用nslookup ip命令反解ip来 判断是否来自Baiduspider的抓取。打开命令处理器 输入nslookup xxx.xxx.xxx.xxx(IP地址)就能解析ip,来判断是否来自Baiduspider的抓取。

3).在macos平台下,您可以使用dig命令反解ip来判断是否来自Baiduspider的抓取。打开命令处理器输入dig -x xxx.xxx.xxx.xxx(IP地址)就能解析ip,来判断是否来自Baiduspider的抓取。

第二步:对域名运行正向DNS查找

对第一步中通过命令检索到的域名运行正向DNS查找,验证该域名与您日志中访问服务器的原始IP地址是否一致,IP地址一致可确认spider来自百度搜索引擎,IP地址不一致即为冒充。

三、工具查询

1、百度真假爬虫检测、baidu spider check、百度搜索真假检测 http://web.chacuo.net/netbaiduspider

2、HostName查询 https://www.googlenb.com/tool/hostname.aspx

3、搜索引擎IP批量查询 https://ip.leiue.com/

php代码1:

echo gethostbyaddr('116.179.37.160');

360截图-5828734.jpg

php代码2:


<?php
/**
 *检查IP及蜘蛛真实性
 * (check_spider('66.249.74.44',$_SERVER['HTTP_USER_AGENT']));
 * @copyright  http://blog.chacuo.net
 * @author 8292669
 * @param string $ip IP地址
 * @param string $ua ua地址
 * @return false|spidername  false检测失败不在指定列表中
 */
function check_spider($ip,$ua)
{
    static $spider_list=array(
    'google'=>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;
}
最后修改:2021 年 05 月 27 日
如果觉得我的文章对你有用,请随意赞赏