Benutzer-Werkzeuge

Webseiten-Werkzeuge


programme:dhcpdnsadmin:dda

Dies ist eine alte Version des Dokuments!


DHCP-/DNS-Admin

dda_20180408.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
#  dda2.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):
	''' 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
 
	# 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
	# for
 
 
	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)
 
 
 
 
#
# 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])
 
## Mengen wenig Sinnvoll, da diese alles durcheinander Würfeln. Zuordnung verloren
## zwischen Devices und MAC-Adr.
 
			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:
 
	check_vlan_and_modify(vlandat)
 
 
 
"""
#
# 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.1523278261.txt.gz · Zuletzt geändert: 2018/04/09 14:51 von pulsar