您当前的位置: 首页 > 网站编程 > PHP教程 > PHP版iis日志分析程序

PHP版iis日志分析程序

作者:xiaoxiao 来源:未知 发布时间: 2013-11-06 17:17 点击:
/******************************************************* *功能:iis日志分析,分析出访问IP总数,搜索引擎抓取次数 *说明: * 将日志文件放在网站根目录,并改名为log.log。 *演示:http://www.zhanzhangpu.com/tools/iislog/ * http://edu.ITbulo.com/UploadFiles_1485/

PHP版iis日志分析程序

    /*******************************************************
  *功能: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.yhzhan.com">站长铺</a>&trade;</div>
  </div>
  </body>
  </html>

分享到:
本文"PHP版iis日志分析程序"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(1)
100%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4