PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT


Posted in PHP onMarch 06, 2013

PHP屏蔽蜘蛛访问代码代码

PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT

常用搜索引擎名与 HTTP_USER_AGENT对应值

百度baiduspider

谷歌googlebot

搜狗sogou

腾讯SOSOsosospider

雅虎slurp

有道youdaobot

Bingbingbot

MSNmsnbot

Alexais_archiver

function is_crawler() { 
  $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']); 
  $spiders = array( 
    'Googlebot', // Google 爬虫 
    'Baiduspider', // 百度爬虫 
    'Yahoo! Slurp', // 雅虎爬虫 
    'YodaoBot', // 有道爬虫 
    'msnbot' // Bing爬虫 
    // 更多爬虫关键字 
  ); 
  foreach ($spiders as $spider) { 
    $spider = strtolower($spider); 
    if (strpos($userAgent, $spider) !== false) { 
      return true; 
    } 
  } 
  return false; 
}

下面的php代码附带了更多的蜘蛛标识

function isCrawler() { 
    echo $agent= strtolower($_SERVER['HTTP_USER_AGENT']); 
    if (!empty($agent)) { 
        $spiderSite= array( 
            "TencentTraveler", 
            "Baiduspider+", 
            "BaiduGame", 
            "Googlebot", 
            "msnbot", 
            "Sosospider+", 
            "Sogou web spider", 
            "ia_archiver", 
            "Yahoo! Slurp", 
            "YoudaoBot", 
            "Yahoo Slurp", 
            "MSNBot", 
            "Java (Often spam bot)", 
            "BaiDuSpider", 
            "Voila", 
            "Yandex bot", 
            "BSpider", 
            "twiceler", 
            "Sogou Spider", 
            "Speedy Spider", 
            "Google AdSense", 
            "Heritrix", 
            "Python-urllib", 
            "Alexa (IA Archiver)", 
            "Ask", 
            "Exabot", 
            "Custo", 
            "OutfoxBot/YodaoBot", 
            "yacy", 
            "SurveyBot", 
            "legs", 
            "lwp-trivial", 
            "Nutch", 
            "StackRambler", 
            "The web archive (IA Archiver)", 
            "Perl tool", 
            "MJ12bot", 
            "Netcraft", 
            "MSIECrawler", 
            "WGet tools", 
            "larbin", 
            "Fish search", 
        ); 
        foreach($spiderSite as $val) { 
            $str = strtolower($val); 
            if (strpos($agent, $str) !== false) { 
                return true; 
            } 
        } 
    } else { 
        return false; 
    } 
} 
if (isCrawler()){ 
    echo "你好蜘蛛精!"; 
} 
else{ 
   echo "你不是蜘蛛精啊!"; 
}

使用PHP实现蜘蛛访问日志统计

$useragent = addslashes(strtolower($_SERVER['HTTP_USER_AGENT']));

 if (strpos($useragent, 'googlebot')!== false){$bot = 'Google';}
 elseif (strpos($useragent,'mediapartners-google') !== false){$bot = 'Google Adsense';}
 elseif (strpos($useragent,'baiduspider') !== false){$bot = 'Baidu';}
 elseif (strpos($useragent,'sogou spider') !== false){$bot = 'Sogou';}
 elseif (strpos($useragent,'sogou web') !== false){$bot = 'Sogou web';}
 elseif (strpos($useragent,'sosospider') !== false){$bot = 'SOSO';}
 elseif (strpos($useragent,'360spider') !== false){$bot = '360Spider';}
 elseif (strpos($useragent,'yahoo') !== false){$bot = 'Yahoo';}
 elseif (strpos($useragent,'msn') !== false){$bot = 'MSN';}
 elseif (strpos($useragent,'msnbot') !== false){$bot = 'msnbot';}
 elseif (strpos($useragent,'sohu') !== false){$bot = 'Sohu';}
 elseif (strpos($useragent,'yodaoBot') !== false){$bot = 'Yodao';}
 elseif (strpos($useragent,'twiceler') !== false){$bot = 'Twiceler';}
 elseif (strpos($useragent,'ia_archiver') !== false){$bot = 'Alexa_';}
 elseif (strpos($useragent,'iaarchiver') !== false){$bot = 'Alexa';}
 elseif (strpos($useragent,'slurp') !== false){$bot = '雅虎';}
 elseif (strpos($useragent,'bot') !== false){$bot = '其它蜘蛛';}
 if(isset($bot)){
   $fp = @fopen('bot.txt','a');
   fwrite($fp,date('Y-m-d H:i:s')."\t".$_SERVER["REMOTE_ADDR"]."\t".$bot."\t".'http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]."\r\n");
   fclose($fp);
 }
PHP 相关文章推荐
PHP中10个不常见却非常有用的函数
Mar 21 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
Jul 13 PHP
比较简单的百度网盘文件直链PHP代码
Mar 24 PHP
PHP将两个关联数组合并函数提高函数效率
Mar 18 PHP
PHP的引用详解
Feb 22 PHP
php上传文件并显示上传进度的方法
Mar 24 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
PHP实现上传多文件示例代码
Feb 20 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
Laravel学习教程之IOC容器的介绍与用例
Aug 15 PHP
php设置编码格式的方法
Mar 05 #PHP
简单实现限定phpmyadmin访问ip的方法
Mar 05 #PHP
关于PHP结束标签的使用细节探讨及联想
Mar 04 #PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 #PHP
PHP对MongoDB[NoSQL]数据库的操作
Mar 01 #PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 #PHP
Apache中php.ini的设置方法
Feb 28 #PHP
You might like
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
Convert Seconds To Hours
2007/06/16 Javascript
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
Vue.js第四天学习笔记(组件)
2016/12/02 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
2020/04/08 Python
python可迭代对象去重实例
2020/05/15 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
大学生的网络创业计划书
2013/12/26 职场文书
雏鹰争章活动总结
2014/05/09 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
个人遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
学生会个人总结范文
2015/02/15 职场文书
python pyhs2 的安装操作
2021/04/07 Python
python热力图实现的完整实例
2022/06/25 Python