Add top visitors and reverse dns plugins

This commit is contained in:
Gregory Soutade 2014-11-21 16:57:37 +01:00
parent 2cb8e193d3
commit ed0af6e6ac
3 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,27 @@
import time
from display import *
PLUGIN_CLASS = 'HTTP'
API_VERSION = 1
def get_plugins_infos():
infos = {
'class' : PLUGIN_CLASS,
'min_version' : API_VERSION,
'max_version' : -1
}
return infos
def load():
return True
def hook(iwla):
stats = iwla.getMonthStats()
index = iwla.getDisplayIndex()
table = DisplayHTMLBlockTable('Top visitors', ['Host', 'Pages', 'Hits', 'Bandwidth', 'Last seen'])
for super_hit in stats['top_visitors']:
row = [super_hit['remote_addr'], super_hit['viewed_pages'], super_hit['viewed_hits'], super_hit['bandwidth'], 0]
row = map(lambda(v): str(v), row)
row[4] = time.asctime(super_hit['last_access'])
table.appendRow(row)
index.appendBlock(table)

View File

@ -0,0 +1,27 @@
import socket
from iwla import IWLA
PLUGIN_CLASS = 'HTTP'
API_VERSION = 1
def get_plugins_infos():
infos = {
'class' : PLUGIN_CLASS,
'min_version' : API_VERSION,
'max_version' : -1
}
return infos
def load():
socket.setdefaulttimeout(0.5)
return True
def hook(iwla):
hits = iwla.getValidVisitors()
for (k, hit) in hits.items():
try:
name, _, _ = socket.gethostbyaddr(k)
hit['remote_addr'] = name
except:
pass

View File

@ -0,0 +1,23 @@
from iwla import IWLA
PLUGIN_CLASS = 'HTTP'
API_VERSION = 1
def get_plugins_infos():
infos = {
'class' : PLUGIN_CLASS,
'min_version' : API_VERSION,
'max_version' : -1
}
return infos
def load():
return True
def hook(iwla):
hits = iwla.getValidVisitors()
stats = iwla.getMonthStats()
top_bandwidth = [(k,hits[k]['bandwidth']) for (k,v) in hits.items()]
top_bandwidth = sorted(top_bandwidth, key=lambda t: t[1], reverse=True)
stats['top_visitors'] = [hits[h[0]] for h in top_bandwidth[:10]]