PHP版iis日志分析程序

来源:网络时间:2012-07-17 11:11:08

/*******************************************************

*功能:iis日志分析,分析出访问IP总数,搜索引擎抓取次数

*说明:

* 将日志文件放在网站根目录,并改名为log.log。

*演示:/tools/iislog/

* gif

*作者:blackli,来自落伍者

*问题:搜索引擎蜘蛛地址不准确,尤其是Google蜘蛛地址,国内流行的地址列

* 表存在相当大的误差,能力有限,不能够解决这个问题。有兴趣的可以参考

* 下面的网址.

*参考

*

*******************************************************/

//打开日志文件

$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].'</br>';

}

}

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 < $num_ip ; $i++ )

{

//计算百度蜘蛛访问次数

for ( $j = 0 ; $j < 4 ; $j ++ )

{

if ( substr($ip[$i][0],0,7) == $baiduSpider[$j] )

{

$num_Spider += $ip[$i][1];

continue;

}

}

//计算Google蜘蛛访问次数

for ( $j = 0 ; $j < 6 ; $j ++ )

{

if ( substr($ip[$i][0],0,7) == $GoogleBot[$j] )

{

$num_GoogleBot += $ip[$i][1];

continue;

}

}

}

//echo '百度蜘蛛请求'.$num_Spider.'次<br/>';

//echo 'google蜘蛛请求'.$num_GoogleBot.'次<br/>';

fclose($fp);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>iis日志分析-Powered by ZhanZhangPu</title>

<style type="text/css">

#main{

width:800px;

margin:0 auto;

border:1px solid #EEE;

}

#main div{

background:#EEE;

border:2px solid #FBFBFB;

line-height:25px;

font-size:15px;

padding:15px;

}

</style>

</head>

<body>

<div id="main">

<h2>日志生成时间<?php echo $date_info[1].' '.$date_info[2]; ?></h2>

<div>

共有<?php echo $num_ip; ?>IP的请求.<br/>

百度蜘蛛请求<?php echo $num_Spider; ?>次.<br/>

google蜘蛛请求<?php echo $num_GoogleBot; ?>次.

</div>

<div>

IP地址列表:<br/>

<?php

for ( $i = 0 ; $i < $num_ip ; $i ++ )

{

echo $ip[$i][0].' '.$ip[$i][1].'次.<br/>';

}

?>

</div>

<div>Powered by <a href="">站长铺</a>&trade;</div>

</div>

</body>

</html>

文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站) 联系邮箱:9145908@qq.com