Benutzer-Werkzeuge

Webseiten-Werkzeuge


programme:dhcpdnsadmin:dda

Dies ist eine alte Version des Dokuments!


DHCP-/DNS-Admin

dda_20180405.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
#  dda.py
 
import sys
from glob import glob
 
 
#
# 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()
 
while True:
    try:
        vlan = input("Eingabe der VLAN Nr.: ")
        vlan = int(vlan)
        break
    except ValueError:
        print("Keine Nummer! Bitte nur Zahlen eingeben ...")
 
#print("Eingegeben wurden folgende Geräte:", devices)
#print("Die dazugehörigen MAC-Adressen:", macadr)
#print("für das VLAN:", vlan)
 
 
lines = []
"""
lines = [  [], [], [], ...  ]
"""
lines_ip = []
 
 
#
# Lesen
#
 
vlan_fn = 'vlans/vlan0{}.in'.format(vlan)
 
with open(vlan_fn, 'r') as vlanconf:
    for line in vlanconf:
        #print(line.split(),"\n\n\n")
        l_elems = line.split()
        #print(l_elems)
        #lines_ip.append(l_elems[2])
        #print(lines_ip)
        #sys.exit(0)
        lines.append(line)
        lines_ip.append(l_elems[2])
 
#print(lines_ip)
#sys.exit(0)
 
 
zaehler = 1
new_ips = False
 
while zaehler < 254:
	ip = "172.16.{[0]}.{}".format(str(vlan), zaehler)
	#print(ip)
	if ip not in lines_ip:
		eingabeliste = "{} {} {}\n".format(devices, macadr, ip)
		lines.append(eingabeliste)
		new_ips = True
		break
 
	zaehler += 1
 
 
 
if new_ips:
	with open(vlan_fn, 'w') as vlanconf:
		for line in lines:
			vlanconf.write(line)
	print("->", vlan_fn)
 
 
#
# Remove - am beginn verschieben, erst alles alte rauslöschen dann neuer Eintrag
#
 
verzei = glob("vlans/*")
print(verzei)
 
### Hinter for-Schleife Funktion erstellen, die dann immer aufgerufen wird, solange Dateien da sind.
for vlandat in verzei:
    with open((vlandat), 'r') as vlandatei:
        for line in vlandatei:
            #l_vlandatei = line.split()
            #del(line.startswith(devices))
            if not line.startswith(devices):
                print(line)
                #entferntelines = "{}".format(line)
                #print(entferntelines)
                #print(line, end="")
                #entferntelines = "{}".format(line).rstrip()
                #print(entferntelines)
 
 
#for vlandat in verzei:
#	with open((vlandat), 'w') as vlandatei:
#		vlandatei.write(entferntelines)
programme/dhcpdnsadmin/dda.1522960420.txt.gz · Zuletzt geändert: 2018/04/05 22:33 von pulsar