Add A and AAAA records. Add invaliad data exception.
This commit is contained in:
parent
151f504b83
commit
10d25b3aa9
1 changed files with 32 additions and 0 deletions
32
main.py
32
main.py
|
@ -1,6 +1,15 @@
|
|||
from enum import Enum
|
||||
from dataclasses import dataclass, field
|
||||
import time
|
||||
import ipaddress
|
||||
import dns
|
||||
|
||||
class InvaliadDataException(Exception):
|
||||
"""Exception raied when invaliad data is passed to a record"""
|
||||
|
||||
def __init__(self, message):
|
||||
self.message = message
|
||||
super.__init__(self, message)
|
||||
|
||||
@dataclass
|
||||
class Record:
|
||||
|
@ -19,6 +28,29 @@ class Record:
|
|||
data: str = '0.0.0.0'
|
||||
ttl: int = 6400
|
||||
|
||||
@dataclass
|
||||
class A(Record):
|
||||
def __init__(self, name: str = '@', ttl: str = 3600, data: str = '0.0.0.0'):
|
||||
if isinstance(ipaddress.ip_address(data), ipaddress.IPv4Address):
|
||||
self.data = data
|
||||
else:
|
||||
raise InvaliadDataException
|
||||
|
||||
self.rtype = 'A'
|
||||
self.name = name
|
||||
self.ttl = ttl
|
||||
|
||||
@dataclass
|
||||
class AAAA(Record):
|
||||
def __init__(self, name: str = '@', ttl: str = 3600, data: str = '0.0.0.0'):
|
||||
if isinstance(ipaddress.ip_address(data), ipaddress.IPv4Address):
|
||||
self.data = data
|
||||
else:
|
||||
raise InvaliadDataException
|
||||
|
||||
self.rtype = 'AAAA'
|
||||
self.name = name
|
||||
self.ttl = ttl
|
||||
|
||||
|
||||
@dataclass
|
||||
|
|
Loading…
Add table
Reference in a new issue