Blame contrib/TTrafic/TTraffic.asp

Packit 667938
<%
Packit 667938
'*******************************************************************************
Packit 667938
'*                                                                             *
Packit 667938
'* TTraffic 1.0.0 (distributed under GNU GENERAL PUBLIC LICENSE)              *
Packit 667938
'* by kamborio                                                                 *
Packit 667938
'*                                                                             *
Packit 667938
'* ------------------------------------------------------                      *
Packit 667938
'*  _                       _                   _                              *
Packit 667938
'* | | __  __ _  _ __ ___  | |__    ___   _ __ (_)  ___                        *
Packit 667938
'* | |/ / / _` || '_ ` _ \ | '_ \  / _ \ | '__|| | / _ \                       *
Packit 667938
'* |   < | (_| || | | | | || |_) || (_) || |   | || (_) |                      *
Packit 667938
'* |_|\_\ \__,_||_| |_| |_||_.__/  \___/ |_|   |_| \___/                       *
Packit 667938
'* ------------------------------------------------------                      *
Packit 667938
'*                               http://www.kamborio.com/                      *
Packit 667938
'*                                                                             *
Packit 667938
'* Copyright (C) 2001 David A. PĂ©rez (david@kamborio.com)                      *
Packit 667938
'*                                                                             *
Packit 667938
'* This program is free software; you can redistribute it and/or modify it     *
Packit 667938
'* under the terms of the GNU General Public License as published by the Free  *
Packit 667938
'* Software Foundation; either version 2 of the License, or (at your option)   *
Packit 667938
'* any later version.                                                          *
Packit 667938
'*                                                                             *
Packit 667938
'* This program is distributed in the hope that it will be useful, but WITHOUT *
Packit 667938
'* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or       *
Packit 667938
'* FITNESS FOR A  PARTICULAR PURPOSE. See the GNU General Public License for   *
Packit 667938
'* more details.                                                               *
Packit 667938
'*                                                                             *
Packit 667938
'* You should have received a copy of the GNU General Public License along     *
Packit 667938
'* with this program; if not, write to the:                                    *
Packit 667938
'*                                                                             *
Packit 667938
'* Free Software Foundation, Inc.                                              *
Packit 667938
'* 59 Temple Place - Suite 330                                                 *
Packit 667938
'* Boston, MA 02111-1307, USA                                                  *
Packit 667938
'*                                                                             *
Packit 667938
'*******************************************************************************
Packit 667938

Packit 667938
Const ForReading = 1, ForWriting = 2
Packit 667938

Packit 667938
Dim LogsMode
Packit 667938

Packit 667938
LogsMode = 1
Packit 667938

Packit 667938
Dim Order, Period
Packit 667938
Dim fso, f, p, n, TheFile, LineNumber, TheLine, TheValues
Packit 667938
Dim ReadAt, LastRan, TotalBytesIn, TotalBytesOut
Packit 667938
Dim PeriodIn, PeriodOut, MonthIn, MonthOut
Packit 667938

Packit 667938
Period = Request("Period")
Packit 667938
Order = Trim(CStr(Request("Order")))
Packit 667938

Packit 667938
If Not IsNumeric(Period) Then
Packit 667938
	Period = 30
Packit 667938
Else
Packit 667938
	If Period < 1 Then
Packit 667938
		Period = 30
Packit 667938
	End If
Packit 667938
End If
Packit 667938

Packit 667938
If Order = "" Then
Packit 667938
	Order = "G"
Packit 667938
End If
Packit 667938

Packit 667938
Set fso = CreateObject("Scripting.FileSystemObject")
Packit 667938
Set f = fso.GetFile(Request.ServerVariables("PATH_TRANSLATED"))
Packit 667938

Packit 667938
If LogsMode = 1 Then
Packit 667938

Packit 667938
	ReDim p(0)
Packit 667938

Packit 667938
	p(0) = Replace(f.Name, ".asp", "") & ".log"
Packit 667938

Packit 667938
Else
Packit 667938

Packit 667938
	p = Split(f.Path, "\")
Packit 667938

Packit 667938
	For n = 1 To (UBound(p) - 2)
Packit 667938
		p(0) = p(0) & "\" & p(n)
Packit 667938
	Next
Packit 667938

Packit 667938
	p(0) = p(0) & "\logs\" & p(n) & "\" & Replace(f.Name, ".asp", "") & ".log"
Packit 667938

Packit 667938
End If
Packit 667938

Packit 667938
Set TheFile = fso.OpenTextFile(p(0), ForReading)
Packit 667938

Packit 667938
LineNumber = -1
Packit 667938

Packit 667938
While Not TheFile.AtEndOfStream
Packit 667938

Packit 667938
	LineNumber = LineNumber + 1
Packit 667938

Packit 667938
	TheLine = TheFile.ReadLine
Packit 667938

Packit 667938
	TheValues = Split(TheLine)
Packit 667938

Packit 667938
	If LineNumber = 0 Then
Packit 667938
		LastRan = UNIXToDay(TheValues(0))
Packit 667938
		TotalBytesIn = CDbl(TheValues(1))
Packit 667938
		TotalBytesOut = CDbl(TheValues(2))
Packit 667938
	Else
Packit 667938
		If DateDiff("d", UNIXToDay(TheValues(0)), Now) < CLng(Period) Then
Packit 667938
			PeriodIn = PeriodIn + CDbl(TheValues(1) * (ReadAt - TheValues(0)))
Packit 667938
			PeriodOut = PeriodOut + CDbl(TheValues(2) * (ReadAt - TheValues(0)))
Packit 667938
		End If
Packit 667938

Packit 667938
		If Month(UNIXToDay(TheValues(0))) = Month(Now) And Year(UNIXToDay(TheValues(0))) = Year(Now) Then
Packit 667938
			MonthIn = MonthIn + CDbl(TheValues(1) * (ReadAt - TheValues(0)))
Packit 667938
			MonthOut = MonthOut + CDbl(TheValues(2) * (ReadAt - TheValues(0)))
Packit 667938
		End If
Packit 667938

Packit 667938
	End If
Packit 667938

Packit 667938
	ReadAt = TheValues(0)
Packit 667938

Packit 667938
Wend
Packit 667938

Packit 667938
Set TheFile = Nothing
Packit 667938
set f = Nothing
Packit 667938
Set fso = Nothing
Packit 667938

Packit 667938
Response.Write "

"
Packit 667938
Response.Write ""
Interface:
Packit 667938
Response.Write "" & BytesTo(TotalBytesIn, Order) & " In and " & BytesTo(TotalBytesOut, Order) & " Out, making a total of " & BytesTo((TotalBytesIn + TotalBytesOut), Order) & ""
Packit 667938
Response.Write "" & MonthName(Month(Now)) & ":"
Packit 667938
Response.Write "" & BytesTo(MonthIn, Order) & " In and " & BytesTo(MonthOut, Order) & " Out, making a total of " & BytesTo((MonthIn + MonthOut), Order) & ""
Packit 667938
Response.Write "Last " & Period & " days:"
Packit 667938
Response.Write "" & BytesTo(PeriodIn, Order) & " In and " & BytesTo(PeriodOut, Order) & " Out, making a total of " & BytesTo((PeriodIn + PeriodOut), Order) & ""
Packit 667938

Packit 667938

Packit 667938

Packit 667938
Function UNIXToDay(Value)
Packit 667938

Packit 667938
	UNIXToDay = DateAdd("s", Value, "1/Jan/1970 0:00")
Packit 667938

Packit 667938
End Function
Packit 667938

Packit 667938
Function BytesTo(Value, Order)
Packit 667938

Packit 667938
	Dim NumericalOrder, OrderName
Packit 667938

Packit 667938
	Select Case UCase(Order)
Packit 667938
		Case "K"
Packit 667938
			NumericalOrder = "1"
Packit 667938
			OrderName = "Kb"
Packit 667938
		Case "M"
Packit 667938
			NumericalOrder = "2"
Packit 667938
			OrderName = "Mb"
Packit 667938
		Case "G"
Packit 667938
			NumericalOrder = "3"
Packit 667938
			OrderName = "Gb"
Packit 667938
		Case "T"
Packit 667938
			NumericalOrder = "4"
Packit 667938
			OrderName = "Tb"
Packit 667938
		Case "P"
Packit 667938
			NumericalOrder = "5"
Packit 667938
			OrderName = "Pb"
Packit 667938
		Case Else
Packit 667938
			NumericalOrder = "0"
Packit 667938
			OrderName = "Bytes"
Packit 667938
	End Select
Packit 667938

Packit 667938
	BytesTo = Round((Value / 1024 ^ NumericalOrder), 2) & " " & OrderName
Packit 667938

Packit 667938
End Function
Packit 667938
%>