Make everything work.
This commit is contained in:
parent
10d25b3aa9
commit
c0b9b0ba05
2 changed files with 15 additions and 3 deletions
17
main.py
17
main.py
|
@ -3,13 +3,14 @@ from dataclasses import dataclass, field
|
||||||
import time
|
import time
|
||||||
import ipaddress
|
import ipaddress
|
||||||
import dns
|
import dns
|
||||||
|
import fqdn
|
||||||
|
|
||||||
class InvaliadDataException(Exception):
|
class InvaliadDataException(Exception):
|
||||||
"""Exception raied when invaliad data is passed to a record"""
|
"""Exception raied when invaliad data is passed to a record"""
|
||||||
|
|
||||||
def __init__(self, message):
|
def __init__(self, message):
|
||||||
self.message = message
|
self.message = message
|
||||||
super.__init__(self, message)
|
super().__init__(self, message)
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Record:
|
class Record:
|
||||||
|
@ -34,7 +35,7 @@ class A(Record):
|
||||||
if isinstance(ipaddress.ip_address(data), ipaddress.IPv4Address):
|
if isinstance(ipaddress.ip_address(data), ipaddress.IPv4Address):
|
||||||
self.data = data
|
self.data = data
|
||||||
else:
|
else:
|
||||||
raise InvaliadDataException
|
raise InvaliadDataException(message=f'{data} is not a valiad IPv4 Address.')
|
||||||
|
|
||||||
self.rtype = 'A'
|
self.rtype = 'A'
|
||||||
self.name = name
|
self.name = name
|
||||||
|
@ -46,12 +47,22 @@ class AAAA(Record):
|
||||||
if isinstance(ipaddress.ip_address(data), ipaddress.IPv4Address):
|
if isinstance(ipaddress.ip_address(data), ipaddress.IPv4Address):
|
||||||
self.data = data
|
self.data = data
|
||||||
else:
|
else:
|
||||||
raise InvaliadDataException
|
raise InvaliadDataException(message=f'{data} is not a valiad IPv6 Address.')
|
||||||
|
|
||||||
self.rtype = 'AAAA'
|
self.rtype = 'AAAA'
|
||||||
self.name = name
|
self.name = name
|
||||||
self.ttl = ttl
|
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
|
@dataclass
|
||||||
class SOA(Record):
|
class SOA(Record):
|
||||||
|
|
1
test.py
1
test.py
|
@ -6,4 +6,5 @@ record = main.Record(data='192.168.5.254', name='localhost.example.com')
|
||||||
#zone.add(soa)
|
#zone.add(soa)
|
||||||
zone.new_soa(mname='ns1.')
|
zone.new_soa(mname='ns1.')
|
||||||
zone.add(record)
|
zone.add(record)
|
||||||
|
zone.add(main.A(name='example', data='fe80::727f:3322:18b1:23e7'))
|
||||||
zone.save_file('/tmp/zone.txt')
|
zone.save_file('/tmp/zone.txt')
|
Loading…
Add table
Reference in a new issue