From 73bcbc02d4b5fad12d14a703303327e11acb4e92 Mon Sep 17 00:00:00 2001 From: "minecraftchest1@outlook.com" Date: Tue, 5 Nov 2024 19:39:02 -0600 Subject: [PATCH] Add record add and zone save functions to main.Zone Added main.Zone.new_record() Added main.Zone.new_soa() Added main.Zone.save_file() --- main.py | 12 ++++++++++++ test.py | 7 ++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index ba90f15..e4210a9 100644 --- a/main.py +++ b/main.py @@ -45,6 +45,7 @@ class SOA(Record): @dataclass class Zone: + origin: str records: list = field(default_factory=list) def __str__(self): @@ -55,6 +56,16 @@ class Zone: return zone + def new_soa(self, mname: str = 'ns1.example.com', rname: str = 'admin.example.com', serial: int = int(time.time()), refresh: int = 86400, retry: int = 7200, expire: int = 15552000, ttl: int = 21700): + if mname[-1] != '.': + mname = mname + '.' + self.origin + self.add(SOA(mname=mname, rname=rname, serial=serial, refresh=refresh, retry=retry, expire=expire, ttl=ttl)) + + def new_record(self, name: str = '@', ttl: str = 3600, rtype: str = 'A', data: str = '0.0.0.0'): + if name[-1] != '.': + name = name + '.' + self.origin + self.add(name=name, ttl=ttl, rtype=rtype, data=data) + def add(self, record: Record): self.records.append(record) @@ -62,5 +73,6 @@ class Zone: with open(filepath, 'w') as file: for record in self.records: file.write(str(record) + '\n') + print(str(record)) file.close() diff --git a/test.py b/test.py index 844e12c..2eb9790 100644 --- a/test.py +++ b/test.py @@ -1,8 +1,9 @@ import main -zone = main.Zone() -soa = main.SOA() +zone = main.Zone(origin='example.com') +#soa = main.SOA() record = main.Record(data='192.168.5.254', name='localhost.example.com') -zone.add(soa) +#zone.add(soa) +zone.new_soa(mname='ns1.') zone.add(record) zone.save_file('/tmp/zone.txt') \ No newline at end of file