Home  >  Article  >  php教程  >  PHP版iis日志分析程序

PHP版iis日志分析程序

WBOY
WBOYOriginal
2016-06-21 08:57:04820browse

说明: 将日志文件放在网站根目录,并改名为log.log。演示:http://www.jzxue.com/tools/iislog/ http://www.jzxue.com/tools/iislog/demo.gif

/*******************************************************
*功能:iis日志分析,分析出访问IP总数,搜索引擎抓取次数
*说明:
*       将日志文件放在网站根目录,并改名为log.log。
*演示:http://www.jzxue.com/tools/iislog/
*       http://www.jzxue.com/tools/iislog/demo.gif
*作者:blackli,建站学整理
*问题:搜索引擎蜘蛛地址不准确,尤其是google蜘蛛地址,国内流行的地址列
*       表存在相当大的误差,能力有限,不能够解决这个问题。有兴趣的可以参考
*       下面的网址.
*参考:http://www.seonewthing.com/googleBotCheck.aspx
*       http://googlewebmastercentral.blogspot.com/2006/09/how-to-verify-googlebot.html
*******************************************************/

        //打开日志文件
        $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
        $fp = fopen("$DOCUMENT_ROOT/log.log",'rb');
        if ( !$fp )
        {
                echo '打开文件失败';
                exit;
        }

        //分析每行日志
        $num_ip = 0;    //访问IP总数
        $ip = array();    //IP数据数组,其中ip[$i][0]为IP地址、ip[$i][1]为该地址出现次数
        while ( !feof($fp) )
        {
                $line = fgets($fp,1001);
                if ( substr($line,0,1) == '#' )
                {
                        //获取日志生成时间
                        if ( substr($line,0,5) == '#Date' )
                        {
                                $date_info = explode(' ',$line);
                                //echo '日志生成时间:'.$date_info[1].'  '.$date_info[2].'';
                        }
                }
                else
                {
                        //获取访问IP
                        if ( $line == '' ) continue;
                        $ip_info = explode(' ',$line);

                        for ( $j = $num_ip-1, $having_ip = false; $j >= 0 ; $j -- )
                        {
                                if ( $ip[$j][0] == $ip_info[6] )
                                {
                                        $having_ip = true;
                                        $ip[$j][1] ++ ;
                                        break;
                                }
                        }
                        if ( $having_ip == false )
                        {
                                $ip[$num_ip][0] = $ip_info[6];
                                $ip[$num_ip][1] = 1;
                                $num_ip ++;
                        }
                }
        }

        //获取搜索引擎蜘蛛访问次数
        //baidu、google蜘蛛地址列表
        $baiduSpider = array('220.181','159.226','202.108','61.135.');
        $googleBot = array('74.125.','209.85.','66.102.','64.233.','64.249','209.85.');

        $num_Spider = $num_googleBot = 0;
        for ( $i = 0; $i         {
                //计算百度蜘蛛访问次数
                for ( $j = 0 ; $j                 {

                        if ( substr($ip[$i][0],0,7) == $baiduSpider[$j] )
                        {
                                $num_Spider += $ip[$i][1];
                                continue;
                        }
                }
                //计算google蜘蛛访问次数
                for ( $j = 0 ; $j                 {
                        if ( substr($ip[$i][0],0,7) == $googleBot[$j] )
                        {
                                $num_googleBot += $ip[$i][1];
                                continue;
                        }
                }
        }

        //echo '百度蜘蛛请求'.$num_Spider.'次
';
        //echo 'google蜘蛛请求'.$num_googleBot.'次
';
        fclose($fp);
?>



iis日志分析-Powered by jzxue




       

日志生成时间


       

                共有IP的请求.

                百度蜘蛛请求次.

                google蜘蛛请求次.
       

       

                IP地址列表:

                                        for ( $i = 0 ; $i                         {
                                echo $ip[$i][0].'     '.$ip[$i][1].'次.
';
                        }
                ?>
       

       
Powered by 建站学




 



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn