231105v1 > Acounter / Modules / Stat / Ipsstat.php

Questions? Need Help? Want to share? » PHP Forum
Script Name:
231105v1

Download:
231105v1.zip

Category:
Web Traffic Analysis

Archive Content:

Acounter > Config

Acounter > Data

Acounter > Images > Interval

Acounter > Images > Menu

Acounter > Images > Scroll

Acounter > Images > Type

Acounter > Images > Diagram > Vertical

Acounter > Images > Diagram > Horiz

Acounter > Images > Admin

Acounter > Images > View

Acounter > Images

Acounter > Modules > Base

Acounter > Modules > Count

Acounter > Modules > Admin

Acounter > Modules > Stat

Acounter > Modules > Template

Acounter > Modules > Image

Acounter > Modules > View

Acounter > Modules

Acounter > Template > Css

Acounter > Template > Diagram

Acounter > Template > Interval

Acounter > Template > List

Acounter > Template > Table

Acounter > Template > Menu

Acounter > Template > Time

Acounter > Template > Type

Acounter > Template > View

Acounter > Template > Admin

Acounter

Acounter > Modules > View

Ipsstat.php:


<?php

//////////////////////////////////////////////////////////////////////////
// Script:        ipsstat.php                                                //
//                                                                        //
// Source:        http://www.actualscripts.com/                                //
//                                                                        //
// Copyright:        (c) 2002 Actual Scripts Company. All rights reserved.        //
//                                                                        //
// YOU DON'T NEED TO EDIT ANYTHING IN THIS SCRIPT.                        //
// SEE LICENSE AGREEMENT FOR MORE DETAILS                                //
//////////////////////////////////////////////////////////////////////////

class IPsStat extends Base
{

 var 
$Acc;                     // Account
 
var $Ctim;                    // Begin time in seconds
 
var $Per;                     // Period in seconds
 
var $IPbase;                   // Object IPsBase
 
var $NumPer;                  // The number of periods
 
var $Conf;
 var 
$Fun;

 function 
IPsStat $fun,  $conf,  $account ,  $ctime , $period, $numP)
          {
           
$this->CodeError=0;
           
$this->Acc=$account;
           
$this->Ctim=$ctime;
           
$this->Per=$period;
           
$this->NumPer=$numP;
           
$this->Fun $fun;
           
$this->Conf $conf;
           
$name=date'zY' ,  $ctime );
           
$this->Base$fun,  $conf,  'accounts/'.$account.'/daily/ips/'.$name.'.ipl');
           
$this->IPbase=new IPsbase$fun,  $conf,  $account, $ctime);
          }

 function 
IPsStatInit ()
          {
           
$this->CodeError=0;
           
$this->BaseInit(0);
           if(
$this->CodeError) return;
           
$this->IPbase->IPsbaseInit();
           if(
$this->IPbase->CodeError) {$this->CodeError=$this->IPbase->CodeError;return;}
           
$Total = new Base($this->Fun,  $this->Conf,  'accounts/'.$this->Acc.'/total.cnt');
           
$Total->BaseInit(0);
           if(
$Total->CodeError) {$this->CodeError=$Total->CodeError;return;}
           
$this->Begintime=$Total->GetRecordByID(0);
           if(
$Total->CodeError) {$this->CodeError=$Total->CodeError;return;}
          }

 function 
VerifyRangeOfTime($ctime, $timeB, $timeE, $period, $numP, &$numPB, &$numPE)
          {
           
$this->CodeError=0;
           
// Verify of end time
           
if($timeE>$ctime)
                
$numPE=(int)(($ctime-$timeB)/$period);
           else 
$numPE=$numP;
           
// Verify of begin time
           
if($timeB<$this->Begintime)
                
$numPB=(int)(($this->Begintime-$timeB)/$period);
           else 
$numPB=0;
          }

 function 
GetIPs(&$StatSum, &$result)
          {
           
$this->CodeError=0;
           
$basetime $this->GetRecordByID(0);
           if(
$this->CodeError) return;

           
$timeB=$this->Ctim;
           
$period=$this->Per;
           
$numP=$this->NumPer;
           
$timeE=$timeB+$period*$numP-1;

           
$this->VerifyRangeOfTime(time(), $timeB, $timeE, $period, $numP, $numPB, $numPE);
           if(
$this->CodeError) return;

           
$StatSum=0;
           for(
$idrec=1;$idrec<$this->Size;$idrec++)
                 {
                  
$rec=$this->GetRecordByID($idrec);
                  if(
$this->CodeError) return;
                  
$mas=split("\|", $rec);
                  
$timerec=$mas[0]+$basetime;
                  
$ip=$this->IPbase->GetIPByID($mas[2]);
                  if(
$this->IPbase->CodeError) {$this->CodeError=$this->IPbase->CodeError;return;}
                  if((
$timerec>=$timeB)&&($timerec<=$timeE))
                       {
                        if(!isset(
$result[$ip]))$result[$ip]=0;
                        
$result[$ip]++;
                        
$StatSum++;
                       }
                 }
           if(!
count($result))
           for(
$i=0;$i<$numP;$i++)
                {
                 if((
$i<$numPB)||($i>$numPE))$result[$i]='|';
                 if(!isset(
$result[$i]))$result[$i]=0;
                }
          }

 function 
GetUniqueIPs(&$PartSum, &$result)
          {
           
$this->CodeError=0;
           
$basetime $this->IPbase->GetRecordByID(0);
           if(
$this->IPbase->CodeError) {$this->CodeError=$this->IPbase->CodeError;return;}
           
$ctime=time();
           
$PartSum=0;
           
reset($result);
           
$e=each($result);
           
$timeB=$e[0];
           for(
$idrec=1;$idrec<$this->IPbase->Size;$idrec++)
                 {
                  
$rec=$this->IPbase->GetRecordByID($idrec);
                  if(
$this->IPbase->CodeError) {$this->CodeError=$this->IPbase->CodeError;return;}
                  
$mas=split("\|", $rec);
                  
$timerec=$mas[0]+$basetime;
                  if(
$timerec>=$timeB) break;
                 }
           while(
$e=each($result))
                  {
                   
$timeE=$e[0];
                   if(
$timeE<$this->Begintime) {$result[$timeB]='|';}
                   elseif(
$timeB>$ctime) {$result[$timeB]='|';}
                   else
                   {
                   for(;
$idrec<$this->IPbase->Size;$idrec++)
                         {
                          
$rec=$this->IPbase->GetRecordByID($idrec);
                          if(
$this->IPbase->CodeError) {$this->CodeError=$this->IPbase->CodeError;return;}
                          
$mas=split("\|", $rec);
                          
$timerec=$mas[0]+$basetime;
                          if(
$timerec<$timeE) {$result[$timeB]++;$PartSum++;}
                          else break;
                         }
                   }
                   
$timeB=$timeE;
                  }
          }


 function 
GetByIP($ipc, &$StatSum)
          {
           
$this->CodeError=0;
           
$basetime $this->GetRecordByID(0);
           if(
$this->CodeError) return;

           
$timeB=$this->Ctim;
           
$period=$this->Per;
           
$numP=$this->NumPer;
           
$timeE=$timeB+$period*$numP-1;

           
$this->VerifyRangeOfTime(time(), $timeB, $timeE, $period, $numP, $numPB, $numPE);
           if(
$this->CodeError) return;

           
$StatSum=0;
           
$result=array();
           
$maxi=0;
           for(
$idrec=1;$idrec<$this->Size;$idrec++)
                 {
                  
$rec=$this->GetRecordByID($idrec);
                  if(
$this->CodeError) return;
                  
$mas=split("\|", $rec);
                  
$timerec=$mas[0]+$basetime;
                  
$ip=$this->IPbase->GetIPByID($mas[2]);
                  if(
$this->IPbase->CodeError) {$this->CodeError=$this->IPbase->CodeError;return;}
                  if(!
strcmp($ip, $ipc))
                  if((
$timerec>=$timeB)&&($timerec<=$timeE))
                       {
                        
$i=(int)(($timerec-$timeB)/$period);
                        if(!isset(
$result[$i]))$result[$i]=0;
                        
$result[$i]++;
                        
$StatSum++;
                       }
                 }
           for(
$i=0;$i<$numP;$i++)
                {
                 if((
$i<$numPB)||($i>$numPE))$result[$i]='|';
                 if(!isset(
$result[$i]))$result[$i]=0;
                }
           return 
$result;
          }

 function 
GetIPsAll(&$StatSum)
          {
           
$this->CodeError=0;
           
$basetime $this->GetRecordByID(0);
           if(
$this->CodeError) return;

           
$timeB=$this->Ctim;
           
$period=$this->Per;
           
$numP=$this->NumPer;
           
$timeE=$timeB+$period*$numP-1;

           
$this->VerifyRangeOfTime(time(), $timeB, $timeE, $period, $numP, $numPB, $numPE);
           if(
$this->CodeError) return;

           
$StatSum=0;
           
$result=array();
           for(
$idrec=1;$idrec<$this->Size;$idrec++)
                 {
                  
$rec=$this->GetRecordByID($idrec);
                  if(
$this->CodeError) return;
                  
$mas=split("\|", $rec);
                  
$timerec=$mas[0]+$basetime;
                  
$ip=$this->IPbase->GetIPByID($mas[2]);
                  if(
$this->IPbase->CodeError) {$this->CodeError=$this->IPbase->CodeError;return;}
                  if((
$timerec>=$timeB)&&($timerec<=$timeE))
                       {
                        if(!isset(
$result[$ip]))$result[$ip]=0;
                        
$result[$ip]++;
                        
$StatSum++;
                       }
                 }
           
arsort($result);
           return 
$result;
          }

 function 
GetIPsPer()
          {
           
$this->CodeError=0;
           
$res=$this->GetIPs();
           if(
$this->CodeError) return;
           return 
$this->Fun->PerArray($res);
          }

 function 
GetIPsAllPer()
          {
           
$this->CodeError=0;
           
$res=$this->GetIPsAll();
           if(
$this->CodeError) return;
           return 
$this->Fun->PerArray($res);
          }

 function 
GetUniqueIPsPer()
          {
           
$this->CodeError=0;
           
$res=$this->GetUniqueIPs();
           if(
$this->CodeError) return;
           return 
$this->Fun->PerArray($res);
          }

 function 
GetByIPPer($ipc)
          {
           
$this->CodeError=0;
           
$res=$this->GetByIP($ipc);
           if(
$this->CodeError) return;
           return 
$this->Fun->PerArray($res);
          }

}

?>


Other Web Traffic Analysis Scripts:

WebMaster Resources Home

©RingsWorld.com