Benutzer-Werkzeuge

Webseiten-Werkzeuge


programme:dhcpdnsadmin:dda

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
wiki:skripte:dda [2018/04/09 14:51] pulsarprogramme:dhcpdnsadmin:dda [2020/11/13 13:54] (aktuell) – ↷ Seite von programme:dda:dda nach programme:dhcpdnsadmin:dda verschoben pulsar
Zeile 1: Zeile 1:
 ==== DHCP-/DNS-Admin ==== ==== DHCP-/DNS-Admin ====
  
-<code python dda_20180408.py>+<code python>
  
-#!/usr/bin/env python3 +    def read(self, vlaninheader): 
-# -*- codingutf-8 -*+        print("read()<-", self._full_fn) 
-+         
-#  dda2.py+        with open(self._full_fn) as file: 
 +            self._lines = file.read().splitlines() 
 +            self._lines = file.readlines()    # behält '\n' 
 +            self._lines = file.readlines() 
 +         
 +        vlaninheader = None 
 +        if vlaninheader in self._full_fn: 
 +            print("das VLAN '{vlaninheader}' wurde in '{self._full_fn}' gefunden".format(vlaninheader,  self._full_fn) ) 
 +             
 +        if not self._lines: 
 +            raise OSError("'{}' ist leer!".format(self._full_fn))
  
-import sys 
-from glob import glob 
  
-verzei = glob("vlans/*") 
  
 +</code>
  
  
-# 
-# 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() +<code python>
-macadr = input("Optional Eingabe der MAC Adresse in der dazugehörigen Reihenfolge: ").upper() +
-vlan = input("Eingabe der VLAN Nr.: ")+
  
 +if __name__ == "__main__":
 +    ''' zum TESTEN der Klasse '''
 +    
 +    from glob import glob
 +    from DnsHeader import DnsHeader
 +    from VLAN import VLAN
 +    
 +    l_headers = glob("headers/*")
 +    
 +    for hfile in l_headers:
 +        dnsheader = DnsHeader(hfile)
 +        print(dnsheader.name)
 +        dnsheader.read()
 +        dnsheader.update_serial()
 +        dnsheader.print_lines()
 +        print()
 +    
 +    vlaninheader = "vlan0100.in"
 +    vlan = VLAN(vlaninheader)
 +    vlan.read()
 +</code>  
  
  
  
-def check_vlan_and_modify(vlandat): +<code python> 
- ''' Lesefunktion für eine beliebige VLAN-Datei ''' +if __name__ == "__main__": 
-  +    ''' zum TESTEN der Klasse ''' 
- lines [] +     
-  +    from glob import glob 
- with open((vlandat), 'r') as vlandatei: +    from VLAN import VLAN 
- lines vlandatei.readlines() +     
-  +    l_headers = glob("headers/*") 
-  +     
- contains_device = False +    for hfile in l_headers
- mac_adr = None +        dnsheader = DnsHeader(hfile
- index = None +        print(dnsheader.name
-  +        dnsheader.read()    # lines[] belegt 
- # Inhalt prüfen: +        dnsheader.update_serial() 
- for i, line in enumerate(lines): +        #dnsheader.write() 
- if line.startswith(devices): +        #dnsheader.print_lines() 
- contains_device = True +        dnsheader.print_vlansinheader() 
- print("Device '{}' in VLAN-Datei '{}' enthalten!".format(devices, vlandat)) +        print() 
-  +        l_vlansinheader = dnsheader.vlansinheader 
- mac_adr = line.split()[1] +        print(l_vlansinheader
- index = i +         
-  +    for vlansinheader in l_vlansinheader
- break +        vlan = VLAN(vlansinheader
- # for +        vlan.read()
-  +
-  +
- if not contains_device+
- print("Device '{}wurde NICHT in VLAN-Datei '{}gefunden!".format(devices, vlandat)) +
- return +
- # An dieser Stelle wissen wir, dass 'devicein 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ürfelnZuordnung 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 +
-#+
  
 +</code> 
  
  
 +<code python>
 +    elif sys.argv[1] == "-update":
 +        print ("dda wurde mit der Option -update aufgerufen")
 +         
 +        for vlan in vlan_objs:
 +            vlan.read()
 +            vlan.print_lines()
 +            
 +        for hfile in l_headers:
 +            dnsheader = DnsHeader(hfile)
 +            dnsheader.read()
 +            dnsheader.update_serial()
 +            dnsheader.write()
 +            
 +        for hfile in l_headers:
 +            dnsheader = DnsHeader(hfile)
 +            print(dnsheader.name)
 +            dnsheader.read()    # lines[] belegt
 +            dnsheader.update_serial()
 +            #dnsheader.write()
 +            #dnsheader.print_lines()
 +            dnsheader.print_vlansinheader()
 +            print()
 +            l_vlansinheader = dnsheader.vlansinheader
 +            print(l_vlansinheader)
 +            
 +            vsinheader = [s.rstrip() for s in l_vlansinheader]
 +            print(vsinheader)
 +            
 +            for vlaninheader in vsinheader:
 +                vlan = VLAN(vlaninheader)
 +                vlan.read()
 +            
 +        sys.exit(0)
 +    
 </code> </code>
  
programme/dhcpdnsadmin/dda.1523278261.txt.gz · Zuletzt geändert: 2018/04/09 14:51 von pulsar