Benutzer-Werkzeuge

Webseiten-Werkzeuge


programme:dhcpdnsadmin:dda_20180412
dda_20180412.py
#!/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.: ")
 
 
 
# Fkt. definition 
def check_vlan_and_modify(vlandat):
    ''' Lesefunktion für eine beliebige VLAN-Datei '''
    lines = []
    with open((vlandat), 'r') as vlandatei:
        lines = vlandatei.readlines()
 
 
    contains_device = False
    mac_adr = None
    index = None
 
    print(lines)
 
    # 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]
            if (mac_adr) is not (macadr):
                print (Programm Abbruch! - Ein anderes Gerät hat bereits die )
 
            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
#
l_macvondeldev = []
 
for vlandat in verzei:
    macvondeldev = (check_vlan_and_modify(vlandat))
    l_macvondeldev.append(str(macvondeldev))
 
 
m_summemacs = set(l_macvondeldev)
l_summemacs = list(m_summemacs)
print (l_summemacs)
 
 
for i in l_summemacs:
    if i = None:
        print(kein doppeltes Gerät gefunden)
 
 
 
"""
#
# 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
#
programme/dhcpdnsadmin/dda_20180412.txt · Zuletzt geändert: 2020/11/13 13:54 von pulsar