Titta i loggen vilka som gästat någon av mina sidor den senaste tiden:
...eller ta en titt på statistik-sidan.
#! /usr/bin/python
# Loggern 2
# Michael Bjersander
# mib@lysator.liu.se
# 21.09 - 01.11.1996 03 Rasmus-hack
import posix
import os
import urllib
from string import *
from time import *
from socket import *
print "Content-type: text/html"
print
print ""
print "Rasmus Web-log Page"
print ""
separator = '\t'
mannr = {'jan':0,
'feb':1,
'mar':2,
'apr':3,
'may':4,
'jun':5,
'jul':6,
'aug':7,
'sep':8,
'oct':9,
'nov':10,
'dec':11}
manadsnamn = ["januari", "februari", "mars", "april", "maj", "juni", "juli",
"augusti", "september", "oktober", "november", "december"]
fillista = ['MCLOGO.GIF', 'Stjärtgräs', 'applets.html', 'background.jpeg', 'blue.jpeg', 'brumbrum.jpeg', 'classes',
'dbltab_zsh.patch','dino.jpeg', 'dos-mode.el','enghumor.html', 'fallskärm.html', 'friends.html',
'hello.html', 'humorsida.html', 'index.html', 'johanna.html', 'kalle.gif', 'kompisar.html',
'kravspec.bok.ps', 'litenrally.jpeg', 'loggen.html', 'purple.gif', 'rasmusbankomat.jpg',
'rasmuses.html', 'rasmuses.html.save', 'skydiving-faq','skydiving.html', 'smalldarkwing.gif',
'smalldino.gif', 'smalljag.gif', 'smallpet.gif', 'smallpink.gif', 'smallpound.gif', 'smallren.gif',
'smallstimpy.gif', 'smallvolt.gif', 'vem.html', 'volt.jpeg', 'whirl.jpeg', 'whoIam.html']
filnamn = {'MCLOGO.GIF':0,
'Stjärtgräs':0,
'applets.html':0,
'background.jpeg':0,
'blue.jpeg':0,
'brumbrum.jpeg':0,
'classes':0,
'dbltab_zsh.patch':0,
'dino.jpeg':0,
'dos-mode.el':0,
'enghumor.html':0,
'fallskärm.html':0,
'friends.html':0,
'hello.html':0,
'humorsida.html':0,
'index.html':0,
'johanna.html':0,
'kalle.gif':0,
'kompisar.html':0,
'kravspec.bok.ps':0,
'litenrally.jpeg':0,
'loggen.html':0,
'purple.gif':0,
'rasmusbankomat.jpg':0,
'rasmuses.html':0,
'rasmuses.html.save':0,
'skydiving-faq':0,
'skydiving.html':0,
'smalldarkwing.gif':0,
'smalldino.gif':0,
'smalljag.gif':0,
'smallpet.gif':0,
'smallpink.gif':0,
'smallpound.gif':0,
'smallren.gif':0,
'smallstimpy.gif':0,
'smallvolt.gif':0,
'vem.html':0,
'volt.jpeg':0,
'whirl.jpeg':0,
'whoIam.html':0}
ustryk = "==========================================="
# returnerar sträng med dagens datum och klockan
def snyggdatum():
ar, mo, da, tim, min, dum, dum, dum, dum = localtime(time())
# räknar månaderna från noll
mo = mo - 1
tim = str(tim)
if len(tim) < 2:
tim = '0'+tim
min = str(min)
if len(min) < 2:
min = '0'+min
snygg = str(da) + ' ' + manadsnamn[mo] + ' '+ str(ar)
snygg = snygg + ' klockan ' + tim + ':' + min
return(snygg)
olddatum = '11 september 1975'
datum = olddatum
# Öppna loggen, och om den inte finns skapa en ny
if not os.path.exists('statistik'):
nyfil = open('statistik','w')
nyfil.close()
try:
accessfil = open('../AccessLog')
indata = accessfil.readlines()
accessfil.close()
statfil = open('statistik')
statistik = statfil.readlines()
statfil.close()
except:
indata = []
if not os.path.exists('nicelog'):
nyfil = open('nicelog','w')
nyfil.close()
nicefil = open('nicelog','a')
for fil in statistik:
data = splitfields(fil, separator)
filnamn[data[0]] = atoi(data[1])
for rad in indata:
data = splitfields(rad, ' ')
if len(data) > 2:
sida = data[-4]
sida = sida[1:]
if (data[-2]=='200'):
basename = splitfields(sida, '/')
try:
filnamn[basename[-1]] = filnamn[basename[-1]] + 1
except: foo = 0
if not (sida[-4:]=='.jpg' or sida[-4:]=='.gif' or sida[-5:]=='.jpeg' or sida[-5]=='.html'):
host = data[0]
# kollar om det är en IP-adress och översätter då till datornamn
bhost = splitfields(host,'.')
ip = 0
for z in bhost:
if z >= '0' and z <= '255':
ip = 1
if ip:
try:
host = gethostbyaddr(host)
host = host[0]
except:
print host,"finns inte!"
refsida = data[1]
datum = data[-7]
browsos = data[2:-7]
datum = splitfields(datum, "/")
dag = datum[0]
dag = str(atoi(dag[1:])) # fixar så att 0or blir rätt
man = lower(datum[1])
datum = splitfields(datum[2],":")
ar = datum[0]
tim = datum[1]
min = datum[2]
sek = datum[3]
datum = dag + " " + manadsnamn[mannr[man]] + " " + ar
tid = tim + ":" + min + ":" + sek
refsida = refsida[7:]
browsos = join(browsos)
# snygga till %7E osv
refsida = urllib.unquote(refsida)
sida = urllib.unquote(sida)
browsos = urllib.unquote(browsos)
if datum != olddatum:
nicefil.write('\n'+datum+'\n'+ustryk[:len(datum)]+'\n')
olddatum = datum
ut = '%-9s %-33s %-30s %-50s' % (tid,host,sida,refsida[:50])
ut = ut + ' ' + browsos + '\n'
while len(refsida) > 49:
refsida = refsida[49:]
ut = ut + '%-75s %-49s' % ('',refsida[:49]) + '\n'
nicefil.write(ut)
nicefil.close()
statfil = open('statistik','w');
for fil in filnamn.keys():
statfil.write(fil + separator + str(filnamn[fil]) + '\n')
# tömmer Roxen-loggen
accessfil = open('../AccessLog','w')
accessfil.close()
print ""
nicefil = open('nicelog', 'r')
indata = nicefil.readlines()
print " Idag "
print datum
print " såg loggen ut så här: "
print ""
print "TID: ANROPANDE DATOR BETITTAD SIDA: TIDIGARE SIDA: NÄTBLÄDDRARE / OPERATIVSYSTEM"
print
print
for rad in indata:
print rad
print ""
print "
"
print ""
print ""
tack för besöket och välkommen åter!
Tack till mib
Tillbaks