From 65b6a8768d96ba241b7d2223e98f6ef835282ac9 Mon Sep 17 00:00:00 2001 From: glondu Date: Sat, 25 Mar 2006 23:21:44 +0100 Subject: [PATCH] Mise en forme. darcs-hash:20060325222144-68412-ec4176db30697af907a81f8d4a67c9c77c352d8d.gz --- surveillance/deconnexion.py | 176 +++++++++++++++++++---------------- surveillance/statistiques.py | 85 +++++++++-------- 2 files changed, 138 insertions(+), 123 deletions(-) diff --git a/surveillance/deconnexion.py b/surveillance/deconnexion.py index 95a7dd0d..7445d91d 100755 --- a/surveillance/deconnexion.py +++ b/surveillance/deconnexion.py @@ -26,13 +26,13 @@ from ldap_crans import crans_ldap, base_classes_crans from ldap_crans import MachineWifi from time import * import locale -locale.setlocale(locale.LC_TIME,'fr_FR') +locale.setlocale(locale.LC_TIME, 'fr_FR') import lock # Quelques fonctions #################### -def machine_online(machine) : +def machine_online(machine): """ Retourne True si la machine est connectée au réseau et False si elle ne l'est pas """ @@ -42,7 +42,7 @@ def machine_online(machine) : # Arping pour les fixes return not commands.getstatusoutput('/usr/sbin/arping -c 3 %s' % machine.mac())[0] -def generate_ps(sanction, proprio) : +def generate_ps(sanction, proprio): """En fonction de la sanction à appliquer au propriétaire, on génère la feuille de déconnexion et on retourne son nom et emplacement.""" @@ -50,29 +50,29 @@ def generate_ps(sanction, proprio) : dossier = '/usr/scripts/surveillance/fiche_deconnexion' # Base pour le nom du fichier - fichier = strftime('%Y-%m-%d-%H-%M') + '-%s-%s' % (sanction, proprio.Nom().lower().replace(' ','-')) + fichier = strftime('%Y-%m-%d-%H-%M') + '-%s-%s' % (sanction, proprio.Nom().lower().replace(' ', '-')) # Création du fichier tex format_date = '%A %d %B %Y' template = file('%s/deconnexion_%s.tex' % (dossier, sanction)).read() - template = template.replace('~prenom~',proprio.prenom().encode('iso8859-15')) - template = template.replace('~nom~',proprio.nom().encode('iso8859-15')) - template = template.replace('~chambre~',proprio.chbre().encode('iso8859-15')) - template = template.replace('~mail~',proprio.email().encode('iso8859-15')) - template = template.replace('~debut~',strftime(format_date,localtime())) - template = template.replace('~fin~',strftime(format_date,localtime(time()+14*86400))) - historique = [ bl.encode('iso-8859-15').split(',') for bl in proprio.blacklist() if bl.split(',')[2]=='autodisc_upload' ] # filtrage des autodisc - historique = [ (strftime('%A %d %B %Y',strptime(bl[0],'%d/%m/%Y %H:%M')), bl[-1].split(' ')[-2]) for bl in historique ] # transfomation en tupple (date, upload) - historique = [ '%s & %s & Mo'%(bl[0],bl[1]) for bl in historique ] # tranformation en ligne + template = template.replace('~prenom~', proprio.prenom().encode('iso8859-15')) + template = template.replace('~nom~', proprio.nom().encode('iso8859-15')) + template = template.replace('~chambre~', proprio.chbre().encode('iso8859-15')) + template = template.replace('~mail~', proprio.email().encode('iso8859-15')) + template = template.replace('~debut~', strftime(format_date, localtime())) + template = template.replace('~fin~', strftime(format_date, localtime(time()+14*86400))) + historique = [ bl.encode('iso-8859-15').split(',') for bl in proprio.blacklist() if bl.split(',')[2] == 'autodisc_upload' ] # filtrage des autodisc + historique = [ (strftime('%A %d %B %Y', strptime(bl[0], '%d/%m/%Y %H:%M')), bl[-1].split(' ')[-2]) for bl in historique ] # transfomation en tupple (date, upload) + historique = [ '%s & %s & Mo'%(bl[0], bl[1]) for bl in historique ] # tranformation en ligne historique = '\\\\\n'.join(historique) # assemblage des lignes template = template.replace('~historique~', historique) template = template.replace('~limitehard~', str(upload.hard)) template = template.replace('~nbadher~', str(len(ldap.search('paiement=ok')['adherent']))) - file('%s/%s.tex' % (dossier, fichier),'w').write(template) + file('%s/%s.tex' % (dossier, fichier), 'w').write(template) # Compilation du fichier latex - commands.getstatusoutput('PATH="/bin:/usr/bin" cd %(dossier)s && latex %(base)s.tex && dvips %(base)s.dvi && rm -f %(base)s.dvi %(base)s.aux %(base)s.log %(base)s.tex'%{'dossier':dossier,'base':fichier}) + commands.getstatusoutput('PATH="/bin:/usr/bin" cd %(dossier)s && latex %(base)s.tex && dvips %(base)s.dvi && rm -f %(base)s.dvi %(base)s.aux %(base)s.log %(base)s.tex'%{'dossier': dossier, 'base': fichier}) return '%s/%s.ps' % (dossier, fichier) @@ -97,7 +97,7 @@ for i in range(5): mail = smtplib.SMTP('localhost') except: sleep(5) - if i==4: + if i == 4: print "Impossible de se connecter au SMTP" sys.exit(1) @@ -196,22 +196,22 @@ for elupload, eltype, elid in uploadeurs: if elupload >= upload.hard: # L'adhérent a t il été blacklisté ? #################################### - if [eltype,elid] in avertis_upload_hard: + if [eltype, elid] in avertis_upload_hard: continue # Propriétaire issu de LDAP ########################### if eltype == 'club': - proprio=ldap.search('cid=%d'%elid,'w')['club'] + proprio = ldap.search('cid=%d'%elid, 'w')['club'] elif eltype == 'adherent': - proprio=ldap.search('aid=%d'%elid,'w')['adherent'] + proprio = ldap.search('aid=%d'%elid, 'w')['adherent'] else: continue - if len(proprio)!=1: + if len(proprio) != 1: print 'Erreur : Proprio non trouvé (%s) %d'%(eltype, elid) continue - proprio=proprio[0] + proprio = proprio[0] # On inscrit l'instance dans la table des avertis_hard ###################################################### @@ -221,71 +221,71 @@ for elupload, eltype, elid in uploadeurs: ############### debut = localtime(time()) fin = localtime(time()+60*60*24) - proprio.blacklist(["%.2d/%.2d/%.4d %.2d:%.2d" % (debut[2],debut[1],debut[0],debut[3],debut[4]),"%.2d/%.2d/%.4d %.2d:%.2d" % (fin[2],fin[1],fin[0],fin[3],fin[4]),'autodisc_upload',"Déconn auto. %s Mo" % elupload]) + proprio.blacklist(["%.2d/%.2d/%.4d %.2d:%.2d" % (debut[2], debut[1], debut[0], debut[3], debut[4]), "%.2d/%.2d/%.4d %.2d:%.2d" % (fin[2], fin[1], fin[0], fin[3], fin[4]), 'autodisc_upload', "Déconn auto. %s Mo" % elupload]) proprio.save() # On envoie un mail à l'adhérent ################################ - corps = upload.message_soft % {'from':upload.expediteur, 'to':proprio.email(), 'upload':elupload, 'proprio':proprio.Nom()} + corps = upload.message_soft % {'from': upload.expediteur, 'to': proprio.email(), 'upload': elupload, 'proprio': proprio.Nom()} corps = corps.encode('iso 8859-15') - mail.sendmail(upload.expediteur,proprio.email(),corps) + mail.sendmail(upload.expediteur, proprio.email(), corps) # On envoie un mail à disconnect ################################ - if upload.disconnect_mail_hard : - corps = upload.message_disconnect_hard % {'from':upload.expediteur, 'to':upload.expediteur, 'upload':elupload, 'proprio':proprio.Nom()} + if upload.disconnect_mail_hard: + corps = upload.message_disconnect_hard % {'from': upload.expediteur, 'to': upload.expediteur, 'upload': elupload, 'proprio': proprio.Nom()} corps = corps.encode('iso 8859-15') - mail.sendmail(upload.expediteur,upload.expediteur,corps) + mail.sendmail(upload.expediteur, upload.expediteur, corps) # Vérification du nombre de déconnexions ######################################### - nb_decos = len([ x for x in proprio.blacklist() if mktime(strptime(x.split(',')[0],'%d/%m/%Y %H:%M')) > mktime(localtime())-30*24*60*60 and x.split(',')[2]=='autodisc_upload' ]) + nb_decos = len([ x for x in proprio.blacklist() if mktime(strptime(x.split(',')[0], '%d/%m/%Y %H:%M')) > mktime(localtime())-30*24*60*60 and x.split(',')[2] == 'autodisc_upload' ]) if nb_decos >= 3: # Génération du fichier postscript fichier_ps = generate_ps('upload', proprio) # Envoi du mail à disconnect - corps = upload.message_disconnect_multi % {'from':upload.expediteur, 'to':upload.expediteur, 'nbdeco':nb_decos, 'proprio':proprio.Nom(), 'ps':fichier_ps} + corps = upload.message_disconnect_multi % {'from': upload.expediteur, 'to': upload.expediteur, 'nbdeco': nb_decos, 'proprio': proprio.Nom(), 'ps': fichier_ps} corps = corps.encode('iso 8859-15') - mail.sendmail(upload.expediteur,upload.expediteur,corps) + mail.sendmail(upload.expediteur, upload.expediteur, corps) - elif elupload >= upload.soft : + elif elupload >= upload.soft: # L'adhérent a t il été averti ############################## - if [eltype,elid] in avertis_upload_soft: + if [eltype, elid] in avertis_upload_soft: continue # Objets LDAP ############# if eltype == 'club': - proprio=ldap.search('cid=%d'%elid)['club'] + proprio = ldap.search('cid=%d'%elid)['club'] elif eltype == 'adherent': - proprio=ldap.search('aid=%d'%elid)['adherent'] + proprio = ldap.search('aid=%d'%elid)['adherent'] else: continue - if len(proprio)!=1: + if len(proprio) != 1: print 'Proprio non trouvé (%s) %d'%(eltype, elid) continue - proprio=proprio[0] + proprio = proprio[0] # On inscrit l'ip dans la table des avertis soft ################################################ - curseur.execute("INSERT INTO avertis_upload_soft (type,id,date) VALUES ('%s','%d','now')"%(eltype,elid)) + curseur.execute("INSERT INTO avertis_upload_soft (type,id,date) VALUES ('%s','%d','now')"%(eltype, elid)) # On envoie un mail à l'adhérent ################################ - corps = upload.message_soft % {'from':upload.expediteur, 'to':proprio.email(), 'upload':elupload, 'proprio':proprio.Nom()} + corps = upload.message_soft % {'from': upload.expediteur, 'to': proprio.email(), 'upload': elupload, 'proprio': proprio.Nom()} corps = corps.encode('iso 8859-15') - mail.sendmail(upload.expediteur,proprio.email(),corps) + mail.sendmail(upload.expediteur, proprio.email(), corps) # On envoie un mail à disconnect ################################ - if upload.disconnect_mail_soft : - corps = upload.message_disconnect_soft % {'from':upload.expediteur, 'to':upload.expediteur, 'upload':elupload, 'proprio':proprio.Nom()} + if upload.disconnect_mail_soft: + corps = upload.message_disconnect_soft % {'from': upload.expediteur, 'to': upload.expediteur, 'upload': elupload, 'proprio': proprio.Nom()} corps = corps.encode('iso 8859-15') - mail.sendmail(upload.expediteur,upload.expediteur,corps) + mail.sendmail(upload.expediteur, upload.expediteur, corps) # On supprime les vieux avertisements curseur.execute("DELETE FROM avertis_upload_hard WHERE date < timestamp 'now' - interval '1 day'") @@ -316,24 +316,24 @@ for ip, nombre in infectes: continue # Lecture des infos de ldap - machine = ldap.search('ipHostNumber=%s' % ip,'w' )['machine'][0] + machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0] hostname = machine.nom() proprio = machine.proprietaire() blacklist = proprio.blacklist() # Inscription dans la table des infectés - requete="INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip + requete = "INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip curseur.execute(requete) # On récupère les index des lignes de bl où il y a marqué virus index = [blacklist.index(x) for x in blacklist if 'virus' in x ] - if index : + if index: # L'adhérent est déjà blacklisté - proprio.blacklist(( index[0] , ['now','-','virus',hostname] )) + proprio.blacklist(( index[0] , ['now', '-', 'virus', hostname] )) proprio.save() - else : + else: # L'adhérent n'est pas encore blacklisté - proprio.blacklist(['now','-','virus',hostname]) + proprio.blacklist(['now', '-', 'virus', hostname]) proprio.save() ################################################################################ @@ -353,28 +353,28 @@ infectes_old = curseur.fetchall() for ip, nombre in infectes: # Si on est en dessous du seuil, ou qu'on est déjà averti, on laisse passer - if nombre < virus.flood or [ip] in infectes_old : + if nombre < virus.flood or [ip] in infectes_old: continue # Lecture des infos de ldap - machine = ldap.search('ipHostNumber=%s' % ip,'w' )['machine'][0] + machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0] hostname = machine.nom() proprio = machine.proprietaire() blacklist = proprio.blacklist() # Inscription dans la table des infectés - requete="INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip + requete = "INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip curseur.execute(requete) # On récupère les index des lignes de bl où il y a marqué virus index = [blacklist.index(x) for x in blacklist if 'virus' in x ] - if index : + if index: # L'adhérent est déjà blacklisté - proprio.blacklist(( index[0] , ['now','-','virus',hostname] )) + proprio.blacklist(( index[0] , ['now', '-', 'virus', hostname] )) proprio.save() - else : + else: # L'adhérent n'est pas encore blacklisté - proprio.blacklist(['now','-','virus',hostname]) + proprio.blacklist(['now', '-', 'virus', hostname]) proprio.save() @@ -386,23 +386,23 @@ requete = "SELECT ip_crans FROM avertis_virus where date < timestamp 'now' - int curseur.execute(requete) infectes = [ x[0] for x in curseur.fetchall() ] -for IP in infectes : +for IP in infectes: # Nombre de requêtes de virus - requete1="SELECT COUNT(ip_src) FROM virus where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP + requete1 = "SELECT COUNT(ip_src) FROM virus where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP curseur.execute(requete1) nb_virus = curseur.fetchall() # Nombre de requêtes de flood - requete2="SELECT COUNT(ip_src) FROM flood where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP + requete2 = "SELECT COUNT(ip_src) FROM flood where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP curseur.execute(requete2) nb_flood = curseur.fetchall() # On ne traite que les IP qui sont descendues en dessous des seuils - if nb_virus[0][0] < virus.virus and nb_flood[0][0] < virus.flood : - machine = ldap.search('ipHostNumber=%s' % IP,'w' )['machine'][0] + if nb_virus[0][0] < virus.virus and nb_flood[0][0] < virus.flood: + machine = ldap.search('ipHostNumber=%s' % IP, 'w' )['machine'][0] # Si la machine n'est pas online, on reconnecte - #if machine_online(machine) : + #if machine_online(machine): proprio = machine.proprietaire() bl = proprio.blacklist() hostname = machine.nom() @@ -411,12 +411,12 @@ for IP in infectes : # ont pu s'ajouter. for ligne in bl: if ',-,virus,%s'%hostname in ligne: - liste=ligne.split(',') - argument=[liste[0],'now',liste[2],liste[3]] + liste = ligne.split(',') + argument = [liste[0], 'now', liste[2], liste[3]] index = bl.index(ligne) - proprio.blacklist((index,argument)) + proprio.blacklist((index, argument)) proprio.save() - requete="DELETE FROM avertis_virus where ip_crans='%s'"%IP + requete = "DELETE FROM avertis_virus where ip_crans='%s'"%IP curseur.execute(requete) ################################################################################ @@ -433,55 +433,67 @@ requete = "SELECT ip_crans,protocole FROM avertis_p2p WHERE date > timestamp 'n curseur.execute(requete) avertisp2p = curseur.fetchall() -for ip, id_p2p, nombre in fraudeurs : +for ip, id_p2p, nombre in fraudeurs: # On récupére le protocole de p2p : - requete="SELECT nom FROM protocole_p2p WHERE id_p2p=%d" % id_p2p + requete = "SELECT nom FROM protocole_p2p WHERE id_p2p=%d" % id_p2p curseur.execute(requete) protocole = curseur.fetchall()[0][0] # On ne prend pas en compte s'il est sous le seuil admis, ou #s'il est averti - if nombre <= p2p.limite[protocole] or [ip, protocole] in avertisp2p : + if nombre <= p2p.limite[protocole] or [ip, protocole] in avertisp2p: continue # Récupération des ref de la machine - machine = ldap.search('ipHostNumber=%s' % ip,'w' )['machine'][0] + machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0] hostname = machine.nom() proprio = machine.proprietaire() blacklist = proprio.blacklist() # Envoi du mail à disconnect - if p2p.disconnect_mail : - requete="select date from p2p where date > timestamp 'now' - interval '1 day' and ip_src='%s' order by date limit 1"%ip + if p2p.disconnect_mail: + requete = "select date from p2p where date > timestamp 'now' - interval '1 day' and ip_src='%s' order by date limit 1"%ip curseur.execute(requete) - date=curseur.fetchall()[0][0] - corps = p2p.avertissement % { 'From': upload.expediteur, 'To': upload.expediteur, 'protocole': protocole, 'hostname':hostname, 'nb_paquets':nombre, 'datedebut':date} + date = curseur.fetchall()[0][0] + corps = p2p.avertissement % { 'From': upload.expediteur, + 'To': upload.expediteur, + 'protocole': protocole, + 'hostname': hostname, + 'nb_paquets': nombre, + 'datedebut': date } corps = corps.encode('iso 8859-15') - mail.sendmail(upload.expediteur,upload.expediteur,corps) + mail.sendmail(upload.expediteur, upload.expediteur, corps) # Inscription dans la base des avertis - requete="INSERT INTO avertis_p2p (ip_crans,date,protocole) VALUES ('%s','now','%s')" % (ip, protocole) + requete = "INSERT INTO avertis_p2p (ip_crans,date,protocole) VALUES ('%s','now','%s')" % (ip, protocole) curseur.execute(requete) # On envoie un mail a l'adhérent ################################ - corps = p2p.deconnexion % {'From':p2p.expediteur, 'To':proprio.email(), 'protocole': protocole, 'hostname':hostname} + corps = p2p.deconnexion % { 'From': p2p.expediteur, + 'To': proprio.email(), + 'protocole': protocole, + 'hostname': hostname } corps = corps.encode('iso 8859-15') - mail.sendmail(p2p.expediteur,proprio.email(),corps) + mail.sendmail(p2p.expediteur, proprio.email(), corps) # Vérification du nombre de déconnexions ######################################### - nb_decos = len([ x for x in proprio.blacklist() if mktime(strptime(x.split(',')[0],'%d/%m/%Y %H:%M')) > mktime(localtime())-365*24*60*60 and x.split(',')[2]=='autodisc_p2p' ]) - if nb_decos >= 3 : + nb_decos = len([ x for x in proprio.blacklist() if mktime(strptime(x.split(',')[0], '%d/%m/%Y %H:%M')) > mktime(localtime())-365*24*60*60 and x.split(',')[2] == 'autodisc_p2p' ]) + if nb_decos >= 3: fichier_ps = generate_ps('p2p', proprio) # Envoi du mail à disconnect - corps = p2p.message_disconnect_multi % {'from':p2p.expediteur, 'to':p2p.expediteur, 'nbdeco':nb_decos, 'proprio':proprio.Nom(), 'ps':fichier_ps} + corps = p2p.message_disconnect_multi % { 'from': p2p.expediteur, + 'to': p2p.expediteur, + 'nbdeco': nb_decos, + 'proprio':proprio.Nom(), + 'ps': fichier_ps } corps = corps.encode('iso 8859-15') - mail.sendmail(p2p.expediteur,p2p.expediteur,corps) + mail.sendmail(p2p.expediteur, p2p.expediteur, corps) # L'adhérent n'est pas encore blacklisté fin = localtime(time()+60*60*24) - proprio.blacklist(['now',"%.2d/%.2d/%.4d %.2d:%.2d" % (fin[2],fin[1],fin[0],fin[3],fin[4]),'autodisc_p2p',hostname]) + proprio.blacklist(['now', "%.2d/%.2d/%.4d %.2d:%.2d" % (fin[2], fin[1], fin[0], fin[3], fin[4]), 'autodisc_p2p', hostname]) proprio.save() diff --git a/surveillance/statistiques.py b/surveillance/statistiques.py index 3ef00ed5..a96915b2 100755 --- a/surveillance/statistiques.py +++ b/surveillance/statistiques.py @@ -44,22 +44,22 @@ mail = smtplib.SMTP('localhost') ##################### requete = "SELECT ip_crans,sum(upload) as somme,sum(download) FROM upload WHERE ip_crans IN (SELECT ip_crans FROM avertis_upload where hard='1' or soft='1') and date > timestamp 'now' - interval '1 day' GROUP BY ip_crans ORDER BY somme DESC" curseur.execute(requete) -liste_upload = tableau_ng( data = [ [l[1], l[2], socket.gethostbyaddr(str(l[0]))[0]] for l in curseur.fetchall() ], - titre = ['upload','download','machine'], - largeur = [10, 10, 30], - format = ['o','o','s'], - alignement = ['d','d','c']).encode('iso-8859-15') +liste_upload = tableau_ng(data = [ [l[1], l[2], socket.gethostbyaddr(str(l[0]))[0]] for l in curseur.fetchall() ], + titre = ['upload', 'download', 'machine'], + largeur = [10, 10, 30], + format = ['o', 'o', 's'], + alignement = ['d', 'd', 'c']).encode('iso-8859-15') # Traffic exempté : ################### requete = "SELECT ip_crans,sum(upload) AS somme , sum(download) FROM upload WHERE ip_crans IN ( SELECT ip_crans from exemptes) and date > timestamp 'now' - interval '1 day' GROUP BY ip_crans ORDER BY somme DESC" curseur.execute(requete) -liste_exemptes = tableau_ng( data = [ [l[1],l[2],socket.gethostbyaddr(str(l[0]))[0] ] for l in curseur.fetchall() ], - titre = ['upload','download','machine'], - largeur = [10, 10, 30], - format = ['o','o','s'], - alignement = ['d','d','c']).encode('iso-8859-15') +liste_exemptes = tableau_ng(data = [ [l[1], l[2], socket.gethostbyaddr(str(l[0]))[0] ] for l in curseur.fetchall() ], + titre = ['upload', 'download', 'machine'], + largeur = [10, 10, 30], + format = ['o', 'o', 's'], + alignement = ['d', 'd', 'c']).encode('iso-8859-15') # Upload des serveurs : @@ -84,7 +84,7 @@ liste_serveurs = tableau_ng( data = liste_serveurs, # statistiques des gros uploads depuis les serveurs ################################################### -gros_uploads_des_serveurs = stats (ip_crans=[x.ip() for x in AssociationCrans().machines() if x.nom() not in [u'sila.crans.org']],show=['ip_crans','ip_ext'],upload_mini=50,show_limit=100).encode('iso-8859-15') +gros_uploads_des_serveurs = stats(ip_crans=[x.ip() for x in AssociationCrans().machines() if x.nom() not in [u'sila.crans.org']], show=['ip_crans', 'ip_ext'], upload_mini=50, show_limit=100).encode('iso-8859-15') ############################ # Statistiques virus/p2p : # @@ -95,13 +95,13 @@ gros_uploads_des_serveurs = stats (ip_crans=[x.ip() for x in AssociationCrans(). requete = "SELECT DISTINCT ip_crans FROM avertis_virus" curseur.execute(requete) infections = [ x[0] for x in curseur.fetchall() ] -liste_virus=[] +liste_virus = [] for IP in infections: try: - hostname = socket.gethostbyaddr("%s"%IP)[0] + hostname = socket.gethostbyaddr("%s" % IP)[0] except socket.herror: continue - liste_virus.append(["%s"%(str(hostname))]) + liste_virus.append(["%s" % (str(hostname))]) liste_virus = tableau_ng(liste_virus, titre=['machine'], largeur=[30]).encode('iso-8859-15') @@ -112,11 +112,11 @@ curseur.execute(requete) liste_virus2 = [] for IP, compteur in curseur.fetchall(): hostname = socket.gethostbyaddr(IP)[0] - liste_virus2.append([hostname,compteur]) -liste_virus2 = tableau_ng( data = liste_virus2, - titre = ['machine','nombre'], - largeur = [30, 12], - alignement = ['c','d'] ).encode('iso-8859-15') + liste_virus2.append([hostname, compteur]) +liste_virus2 = tableau_ng(data = liste_virus2, + titre = ['machine', 'nombre'], + largeur = [30, 12], + alignement = ['c', 'd']).encode('iso-8859-15') # Machines ayant fait de attaques flood dans la journée : @@ -126,11 +126,11 @@ curseur.execute(requete) liste_virus3 = [] for IP, compteur in curseur.fetchall(): hostname = socket.gethostbyaddr(IP)[0] - liste_virus3.append([hostname,compteur]) -liste_virus3 = tableau_ng( data = liste_virus3, - titre = ['machine','nombre'], - largeur = [30, 12], - alignement = ['c','d'] ).encode('iso-8859-15') + liste_virus3.append([hostname, compteur]) +liste_virus3 = tableau_ng(data = liste_virus3, + titre = ['machine', 'nombre'], + largeur = [30, 12], + alignement = ['c', 'd']).encode('iso-8859-15') # Machines ayant utilisé des protocoles P2P dans la journée : @@ -155,13 +155,16 @@ for IP, protocole, compteur, blackliste in curseur.fetchall(): hostname = socket.gethostbyaddr(IP)[0] # Le champ blackliste contient la date du blacklistage si il a eu lieu if blackliste : - liste_p2p.append(['*%s*'%hostname, '*%s*'%protocole, '*%d*'%compteur, '*%d*'%config.p2p.limite[protocole]]) + liste_p2p.append(['*%s*' % hostname, + '*%s*' % protocole, + '*%d*' % compteur, + '*%d*' % config.p2p.limite[protocole]]) else: liste_p2p.append([hostname, protocole, compteur, config.p2p.limite[protocole]]) -liste_p2p = tableau_ng( data = liste_p2p, - titre = ['machine','protocole','nombre','limite'], - largeur = [32, 14, 10, 8], - alignement = ['c','c','d','d'] ).encode('iso-8859-15') +liste_p2p = tableau_ng(data = liste_p2p, + titre = ['machine', 'protocole', 'nombre', 'limite'], + largeur = [32, 14, 10, 8], + alignement = ['c', 'c', 'd', 'd']).encode('iso-8859-15') @@ -171,7 +174,7 @@ liste_p2p = tableau_ng( data = liste_p2p, expediteur = "disconnect@crans.org" destinataire = "disconnect@crans.org" -message="""From: %(From)s +message = """From: %(From)s To: %(To)s Subject: Statistiques des dernières 24h Message-Id: <%(uuid)s1@crans.org> @@ -213,17 +216,17 @@ statistiques.py uuid = md5.md5(str(long(time.time() * 1000)) + str(long(random.random()*100000000000000000L))).hexdigest() -corps = message %{'From':expediteur, - 'To':destinataire, - 'uuid':uuid, - 'liste_upload':liste_upload, - 'liste_p2p':liste_p2p, - 'liste_virus':liste_virus, - 'liste_virus2':liste_virus2, - 'liste_virus3':liste_virus3, - 'liste_exemptes':liste_exemptes, - 'liste_serveurs':liste_serveurs, - 'gros_uploads_des_serveurs':gros_uploads_des_serveurs} +corps = message % { 'From': expediteur, + 'To': destinataire, + 'uuid': uuid, + 'liste_upload': liste_upload, + 'liste_p2p': liste_p2p, + 'liste_virus': liste_virus, + 'liste_virus2': liste_virus2, + 'liste_virus3': liste_virus3, + 'liste_exemptes': liste_exemptes, + 'liste_serveurs': liste_serveurs, + 'gros_uploads_des_serveurs': gros_uploads_des_serveurs } mail.sendmail('disconnect@crans.org','disconnect@crans.org',corps)