diff --git a/main.py b/main.py index f7beab1..8d6c3cd 100644 --- a/main.py +++ b/main.py @@ -3,13 +3,14 @@ from dataclasses import dataclass, field import time import ipaddress import dns +import fqdn class InvaliadDataException(Exception): """Exception raied when invaliad data is passed to a record""" def __init__(self, message): self.message = message - super.__init__(self, message) + super().__init__(self, message) @dataclass class Record: @@ -34,7 +35,7 @@ class A(Record): if isinstance(ipaddress.ip_address(data), ipaddress.IPv4Address): self.data = data else: - raise InvaliadDataException + raise InvaliadDataException(message=f'{data} is not a valiad IPv4 Address.') self.rtype = 'A' self.name = name @@ -46,12 +47,22 @@ class AAAA(Record): if isinstance(ipaddress.ip_address(data), ipaddress.IPv4Address): self.data = data else: - raise InvaliadDataException + raise InvaliadDataException(message=f'{data} is not a valiad IPv6 Address.') self.rtype = 'AAAA' self.name = name self.ttl = ttl +@dataclass +class CNAME(Record): + def __init__(self, name: str = '@', ttl: str = 3600, data: str = '0.0.0.0'): + self.rtype = 'CNAME' + self.name = name + self.ttl = ttl + + if(fqdn.FQDN(data).is_valid): + self.data = data + @dataclass class SOA(Record): diff --git a/test.py b/test.py index 2eb9790..022f616 100644 --- a/test.py +++ b/test.py @@ -6,4 +6,5 @@ record = main.Record(data='192.168.5.254', name='localhost.example.com') #zone.add(soa) zone.new_soa(mname='ns1.') zone.add(record) +zone.add(main.A(name='example', data='fe80::727f:3322:18b1:23e7')) zone.save_file('/tmp/zone.txt') \ No newline at end of file