程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP版iis日志分析程序

PHP版iis日志分析程序

編輯:關於PHP編程

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

*功能:iis日志分析,分析出訪問IP總數,搜索引擎抓取次數

*說明:

* 將日志文件放在網站根目錄,並改名為log.log。

*演示:http://www.zhanzhangpu.com/tools/iislog/

* http://edu.ITbulo.com/UploadFiles_1485/200909/20090928132201681.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].'</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="http://www.zhanzhangpu.com">站長鋪</a>&trade;</div>

</div>

</body>

</html>


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved