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代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
PHP缓存技术的多种方法小结
Aug 14 PHP
php和js如何通过json互相传递数据相关问题探讨
Feb 26 PHP
深入php 正则表达式的学习探讨
Jun 06 PHP
解析php php_openssl.dll的作用
Jul 01 PHP
php编写的一个E-mail验证类
Mar 25 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
Dec 18 PHP
PHP匿名函数和use子句用法实例
Mar 16 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 17 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 函数执行效率的小比较
2010/10/17 PHP
php更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
php去除数组中重复数据
2014/11/18 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
JavaScript 事件记录使用说明
2009/10/20 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
Angular.JS中的this指向详解
2017/05/17 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
layui实现文件或图片上传记录
2018/08/28 Javascript
JavaScript设计模式之装饰者模式实例详解
2019/01/17 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
Python 私有函数的实例详解
2017/09/11 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
详解Python字典小结
2018/10/20 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
python做反被爬保护的方法
2019/07/01 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
台湾旅游网站:灿星旅游
2018/10/11 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
市场营销专业毕业生自荐信
2013/11/02 职场文书
指导教师评语
2014/04/26 职场文书
初一数学教学反思
2016/02/17 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
四十九个javascript小知识实用技巧
2021/11/20 Javascript
nginx容器方式反向代理实战
2022/04/18 Servers
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS