【php判断搜索引擎】php判断搜索引擎蜘蛛爬虫的方法整理

时间:2020-09-11  来源:Google  阅读:

先来看蜘蛛列表

 




搜索引擎
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(+http://www.sogou.com/docs/help/webmasters.htm#07″)
*Sogou Push Spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07″)

网易
YodaoBot
×
*Mozilla/5.0 (compatible; YodaoBot/1.0;http://www.yodao.com/help/webmaster/spider/”; )

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主域名

 

再来看看例子

//php判断搜索引擎蜘蛛爬虫的方法

function checkrobot($useragent="") {
    static $kw_spiders = array("bot", "crawl", "spider", "slurp", "sohu-search", "lycos", "robozilla");
    static $kw_browsers = array("msie", "netscape", "opera", "konqueror", "mozilla");

    $useragent = strtolower(empty($useragent) ? $_SERVER["HTTP_USER_AGENT"] : $useragent);
    if (strpos($useragent, "http://") === false && dstrpos($useragent, $kw_browsers))
        return false;
    if (dstrpos($useragent, $kw_spiders))
        return true;
    return false;
}

function dstrpos($string, $arr, $returnvalue = false) {
    if (empty($string))
        return false;
    foreach ((array) $arr as $v) {
        if (strpos($string, $v) !== false) {
            $return = $returnvalue ? $v : true;
            return $return;
        }
    }
    return false;
}

if(checkrobot()){
    echo "蜘蛛";
}else{
    echo "人类";
}

?>

例子

PHP反解析IP方法
/**
 *检查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;
}
 

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

【php判断搜索引擎】php判断搜索引擎蜘蛛爬虫的方法整理

http://m.bbyears.com/seo/98037.html

推荐访问:php判断素数
相关阅读 猜你喜欢
本类排行 本类最新