def __init__(self, tableau_adresse, options, fichier_sortie): Thread.__init__(self) Observable.__init__(self) self.adresse = '' self.progress = 0.0 self.status = 'ready' #On cree un string a partir de la liste des adresses #contenues dans le tableau for ip in tableau_adresse: try: ip = valideIP(ip) self.adresse += ' ' + str(ip) except: pass liste_arguments = [options, fichier_sortie] #Contrôle des arguments for arg in liste_arguments: error = re.search('[;|<>"`&{}]', str(arg)) if error != None: raise Exception("Paramètres Nmap invalide") #Si pas de levé d'exception self.options = options self.fichier_sortie = fichier_sortie
def __init__(self, tableau_adresse, options, fichier_sortie): Thread.__init__(self) Observable.__init__(self) self.adresse = "" self.progress = 0.0 self.status = "ready" # On cree un string a partir de la liste des adresses # contenues dans le tableau for ip in tableau_adresse: try: ip = valideIP(ip) self.adresse += " " + str(ip) except: pass liste_arguments = [options, fichier_sortie] # Contrôle des arguments for arg in liste_arguments: error = re.search('[;|<>"`&{}]', str(arg)) if error != None: raise Exception("Paramètres Nmap invalide") # Si pas de levé d'exception self.options = options self.fichier_sortie = fichier_sortie
def initialiserPG(dump_file,host,port,database,login,password): ''' Cette fonction permet d'initialiser une base de donnée POstgreSQL à partir d'un fichier de dump ''' conn = psycopg2.connect(host=host,port=port,database='postgres',user=login,password=password) conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT) cursor=conn.cursor() cursor.execute("SELECT datdba FROM pg_database WHERE datname=%s",[database]) base=dictfetchall(cursor) cursor.execute("SELECT rolcreatedb,oid FROM pg_roles WHERE rolname=%s",[login]) user=dictfetchall(cursor) #si la base n'existe pas #et si l'utilisateur possede le droit de creation de base if ((len(base)==0) and (user[0]['rolcreatedb']==True)): error=re.search('[;|<>]&"\'',str(database)) if error!=None: raise Exception("Erreur de paramètre") cursor.execute('CREATE DATABASE '+str(database)) cursor.close() if len(base)==1: conn = psycopg2.connect(host=host,port=port,database=database,user=login,password=password) conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT) cursor=conn.cursor() cursor.execute("SELECT tablename FROM pg_tables WHERE tableowner=%s AND schemaname='public'",[login]) liste=dictfetchall(cursor) for table in liste: cursor.execute("DROP TABLE IF EXISTS "+str(table['tablename'])+" CASCADE") os.putenv('PGPASSWORD',password) #On recupère l'adresse IP si l'utilisateur nous envoie le hostname try: host=valideIP(host) except: host=getIP(host) subprocess.check_output('psql -h '+desatanize(host)+' -p '+str(port)+' -d '+desatanize(database)+' -U '+desatanize(login)+' < '+dump_file, shell=True)
def initialiserPG(dump_file, host, port, database, login, password): ''' Cette fonction permet d'initialiser une base de donnée POstgreSQL à partir d'un fichier de dump ''' conn = psycopg2.connect(host=host, port=port, database='postgres', user=login, password=password) conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT) cursor = conn.cursor() cursor.execute("SELECT datdba FROM pg_database WHERE datname=%s", [database]) base = dictfetchall(cursor) cursor.execute("SELECT rolcreatedb,oid FROM pg_roles WHERE rolname=%s", [login]) user = dictfetchall(cursor) #si la base n'existe pas #et si l'utilisateur possede le droit de creation de base if ((len(base) == 0) and (user[0]['rolcreatedb'] == True)): error = re.search('[;|<>]&"\'', str(database)) if error != None: raise Exception("Erreur de paramètre") cursor.execute('CREATE DATABASE ' + str(database)) cursor.close() if len(base) == 1: conn = psycopg2.connect(host=host, port=port, database=database, user=login, password=password) conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT) cursor = conn.cursor() cursor.execute( "SELECT tablename FROM pg_tables WHERE tableowner=%s AND schemaname='public'", [login]) liste = dictfetchall(cursor) for table in liste: cursor.execute("DROP TABLE IF EXISTS " + str(table['tablename']) + " CASCADE") os.putenv('PGPASSWORD', password) #On recupère l'adresse IP si l'utilisateur nous envoie le hostname try: host = valideIP(host) except: host = getIP(host) subprocess.check_output('psql -h ' + desatanize(host) + ' -p ' + str(port) + ' -d ' + desatanize(database) + ' -U ' + desatanize(login) + ' < ' + dump_file, shell=True)
def valideAdresse(self, adresse): if str(adresse) in self.LISTE_ADRESSES: raise Exception("Adresse IP déjà présente en base") else: return valideIP(adresse)
def valideAdresse(self,adresse): if str(adresse) in self.LISTE_ADRESSES: raise Exception("Adresse IP déjà présente en base") else: return valideIP(adresse)