#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # dda.py #import sys from glob import glob verzei = glob("vlans/*") # # Eingabe # print ("""Welche(r) Rechner/Drucker soll(en) modifiziert werden. Mehrere Rechner mit Leerzeichen trennen. \n\n """) devices = input("Eingabe der Geräte Namen: ").lower() macadr = input("Optional Eingabe der MAC Adresse in der dazugehörigen Reihenfolge: ").upper() vlan = input("Eingabe der VLAN Nr.: ") def check_vlan_and_modify(vlandat): ''' Lese und schreibe Funktion für eine beliebige VLAN-Datei ''' lines = [] with open((vlandat), 'r') as vlandatei: lines = vlandatei.readlines() contains_device = False mac_adr = None index = None # Inhalt prüfen: for i, line in enumerate(lines): if line.startswith(devices): contains_device = True print("Device '{}' in VLAN-Datei '{}' enthalten!".format(devices, vlandat)) mac_adr = line.split()[1] index = i break if not contains_device: print("Device '{}' wurde NICHT in VLAN-Datei '{}' gefunden!".format(devices, vlandat)) return # An dieser Stelle wissen wir, dass 'device' in der Datei enthalten ist! # Line mit dem gefundenen Device entfernen: del lines[index] # Neuen Inhalt in Datei schreiben: with open((vlandat), 'w') as vlandatei: vlandatei.writelines(lines) print("->", vlandat) return(mac_adr) # # Dateien einlesen # """ lines = [] lines_devices = [] lines_mac = [] lines_ip = [] for vlandat in verzei: with open((vlandat), 'r') as vlandatei: for line in vlandatei: l_elems = line.split() lines.append(line) lines_devices = [] lines_devices.append(l_elems[0]) lines_mac.append(l_elems[1]) lines_ip.append(l_elems[2]) m_devices = set(lines_devices) m_mac = set(lines_mac) m_ip = set(lines_ip) #print("datei" + (vlandatei.name)) #str(vlandatei.name) #print(lines) print(m_devices) print(m_mac) print(m_ip) """ # # Dateien einlesen und bereinigen # for vlandat in verzei: macvondeldev = (check_vlan_and_modify(vlandat)) print(macvondeldev) """ # # IP generieren # zaehler = 1 while zaehler < 254: ip = "172.16.{[0]}.{}".format(vlan, zaehler) #print(ip) if ip not in lines_ip: eingabeliste = "{} {} {}\n".format(devices, macadr, ip) #lines.append(eingabeliste) break zaehler += 1 """ # # Eingabe-Liste erstellen # #print (ip) #eingabeliste = "{} {} {}\n".format(devices, macadr, ip) # # komplette Liste erstellen # #lines.append(eingabeliste) # # Dateien schreiben #