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
Letzte ÜberarbeitungBeide Seiten, nächste Überarbeitung
wiki:skripte:dda [2018/04/09 14:50] pulsarprogramme:dda:dda [2020/11/13 13:47] – ↷ Seite von wiki:skripte:dda nach programme:dda: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ü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 +
-#+
  
 +</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.txt · Zuletzt geändert: 2020/11/13 13:54 von pulsar