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 相关文章推荐
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
Mar 28 PHP
坏狼php学习 计数器实例代码
Jun 15 PHP
PHP与MySQL开发的8个技巧小结
Dec 17 PHP
PHP批量检测并去除文件BOM头代码实例
May 08 PHP
PHP和Mysql中转UTF8编码问题汇总
Oct 10 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
PHP实现的曲线统计图表示例
Nov 10 PHP
PHP微信模板消息操作示例
Jun 29 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
php项目中类的自动加载实例讲解
Sep 12 PHP
phpQuery采集网页实现代码实例
Apr 02 PHP
如何判断微信付款码和支付宝付款码
Apr 01 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通用检测函数集合
2006/11/25 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
Mootools 1.2教程 函数
2009/09/15 Javascript
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
pandas series序列转化为星期几的实例
2018/04/11 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
python实现UDP协议下的文件传输
2020/03/20 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
Python图像读写方法对比
2020/11/16 Python
python selenium 获取接口数据的实现
2020/12/07 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
一套.net面试题及答案
2016/11/02 面试题
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
迎新晚会主持词
2014/03/24 职场文书
三严三实对照检查材料
2014/08/25 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
2015年妇女工作总结
2015/05/14 职场文书
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL