IPAM

mail@pastecode.io avatar
unknown
python
2 years ago
3.6 kB
1
Indexable
def csvExporter(IPList1,IPList2, IPList3, IPList4, IPList5):
    IPList1.insert(0, 'Router 1:')
    IPList2.insert(0,'Router 2:')
    IPList3.insert(0, 'Router 3:')
    IPList4.insert(0, 'Router 4:')
    IPList5.insert(0, 'Router 5:')

    columnas = ['Dispositivo', 'Direcciones IP encontradas']

    with open("./ArchivosIPAM/DireccionesIPAM.csv", mode='w') as archivo:
        escritor_archivo = csv.writer(archivo, delimiter=',')
        escritor_archivo.writerow(columnas)
        escritor_archivo.writerow(IPList1)
        escritor_archivo.writerow(IPList2)
        escritor_archivo.writerow(IPList3)
        escritor_archivo.writerow(IPList4)
        escritor_archivo.writerow(IPList5)

    print("\n[*] Informacion exportada a csv con exito!")

def pdfExporter(router1, router2, router3, router4, router5):
    pdf = FPDF()
    pdf.add_page()
    pdf.set_font("Arial", size = 15)
    pdf.cell(200, 10, txt = "Direcciones IP encontradas", ln = 1, align = 'C')

    matriz = [ router1, router2, router3, router4, router5]

    for i in range(5):
        pdf.cell(0,20, txt = "Router " + str(i + 1) + ":", ln = 1)
        for x in matriz[i]:
            pdf.cell(200,5, txt = "    " + x, ln = 1)

    pdf.output("./ArchivosIPAM/ReporteIPAM.pdf")
    print("\n[*] Informacion exportada a PDF con exito!")

def ipValidator(lista):
    temp = []
    for i in range(len(lista)):
        temp_checker = lista[i].split('.')
        if('255' in temp_checker):
            continue
        elif('0.0' in lista[i]):
            continue
        else:
            temp.append(lista[i])
            print("  " + lista[i])

    return temp

def IPAM(router1, router2, router3, router4, router5):
    print("###################### Imprimiendo direcciones IP ########################\n")
    ## Aqui entramos al modo enable
    ######## Router 1 #########
    router1.enable()
    configRouter1 = router1.send_command('show run') 
    direccionesRouter1 = re.findall("(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", configRouter1)
    print("Router 1: ")
    clean1 = ipValidator(direccionesRouter1)
    ######## Router 2 #########
    router2.enable()
    configRouter2 = router2.send_command('show run')
    direccionesRouter2 = re.findall("(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", configRouter2)
    print("Router 2: ")
    clean2 = ipValidator(direccionesRouter2)
    ####### Router 3 ##########
    router3.enable()
    configRouter3 = router3.send_command('show run')
    direccionesRouter3 = re.findall("(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", configRouter3)
    print("Router 3: ")
    clean3 = ipValidator(direccionesRouter3)
    ####### Router 4 ##########
    router4.enable()
    configRouter4 = router4.send_command('show run')
    direccionesRouter4 = re.findall("(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", configRouter4)
    print("Router 4: ")
    clean4 = ipValidator(direccionesRouter4)
    ###### Router 5 ##########
    router5.enable()
    configRouter5 = router5.send_command('show run')
    direccionesRouter5 = re.findall("(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", configRouter5)
    print("Router 5: ")
    clean5 = ipValidator(direccionesRouter5)

    ## Verificamos la ruta del directorio de archivos exportados del sistema IPAM
    if(os.path.exists('./ArchivosIPAM') == True):
        bait = 1