programme:dhcpdnsadmin:dda_20180411
- dda_20180411.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]
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
#
programme/dhcpdnsadmin/dda_20180411.txt · Zuletzt geändert: 2020/11/13 13:54 von pulsar