<?php //定义当前php文件编码为utf-8防止乱码 header("Content-type:text/html;charset=utf-8"); //获取用户访问的header头里的UA标识 $userAgent = $_SERVER['HTTP_USER_AGENT']; //获取用户ip $ip = $_SERVER['REMOTE_ADDR']; //根据IP地址获取主机域名 $hostname = gethostbyaddr($ip); //判断ip主机名是否为百度的,根据百度官方提供的主机域名说明,非baidu.com和baidu.jp的均为伪造不过baidu.jp是海外的所以下面不考虑 if (strpos($hostname, "baidu.com")==false) { //不是百度的就把UA就设定为null $userAgent=null; } //过滤掉UA里的所有空格,确保switch的准确性,因为有的ua可能带多个空格 $userAgent = preg_replace('/\s+/', '', $userAgent); //拿UA标识判断是否是百度蜘蛛的 switch ($userAgent) { //百度移动蜘蛛 case "Mozilla/5.0(Linux;u;Android4.2.2;zh-cn;)AppleWebKit/534.46(KHTML,likeGecko)Version/5.1MobileSafari/10600.6.3(compatible;Baiduspider/2.0;+http://www.baidu.com/search/spider.html)": $SpiderName="百度移动蜘蛛"; // break为如果存在就跳出switch break; //百度移动副蜘蛛 case "Mozilla/5.0(iPhone;CPUiPhoneOS9_1likeMacOSX)AppleWebKit/601.1.46(KHTML,likeGecko)Version/9.0Mobile/13B143Safari/601.1(compatible;Baiduspider-render/2.0;+http://www.baidu.com/search/spider.html)": $SpiderName="百度移动副蜘蛛"; // break为如果存在就跳出switch break; //百度PC蜘蛛 case "Mozilla/5.0(compatible;Baiduspider/2.0;+http://www.baidu.com/search/spider.html)": $SpiderName="百度PC蜘蛛"; // break为如果存在就跳出switch break; //百度PC副蜘蛛 case "Mozilla/5.0(compatible;Baiduspider-render/2.0;+http://www.baidu.com/search/spider.html)": $SpiderName="百度PC副蜘蛛"; // break为如果存在就跳出switch break; //百度小程序蜘蛛 case "Mozilla/5.0(iPhone;CPUiPhoneOS9_1likeMacOSX)AppleWebKit/601.1.46(KHTML,likeGecko)Version/9.0Mobile/13B143Safari/601.1(compatible;Baiduspider-render/2.0;Smartapp;+http://www.baidu.com/search/spider.html)": $SpiderName="百度小程序蜘蛛"; // break为如果存在就跳出switch break; default: // 如果UA没有匹配到就设置默认值 $SpiderName="非百度蜘蛛"; } //输出当前结果 echo $SpiderName; ?>