From c533f9e02bbb0b187110a5fdaf00e763037237ee Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Sun, 14 Apr 2019 19:13:22 +0200 Subject: [PATCH] +begin check --- README.md | 9 +++++++++ check.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 check.py diff --git a/README.md b/README.md index 4b0c63b..a376805 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,12 @@ ungleich register --name your-user-name --email your@email ungleich play-game --game register --ip ungleich play-game --game dns-forward --ip + +## Documentation + +- Rais CheckExc + +## TODOs + +- last result: select checkname where result = true +- last success: select checkname where result = true diff --git a/check.py b/check.py new file mode 100644 index 0000000..49dfacb --- /dev/null +++ b/check.py @@ -0,0 +1,45 @@ + +class CheckException(Exception): + pass + +class WrongParameterException(CheckException): + pass + +class BaseCheck(object): + + def check(self): + """ Should return tuple: + (true/false, data) + + data is the raw result and can be saved in a database + """ + pass + + +class DNSCheck(BaseCheck): + def __init__(self, name, rr_type="AAAA", server=None): + + self.rr_types = [ "AAAA", "A", "PTR", "TXT" ] + self.name = name + self.rr_type = rr_type + self.server = server + + if not self.rr_type in self.rr_types: + raise WrongParameterException("Unsupported rr_type: {}".format(self.rr_type)) + + + def rr_type_to_command(self): + base_cmd="dig +short" + + if self.rr_type == "AAAA": + command = "{} {} aaaa".format(base_cmd, self.name) + elif self.rr_type == "A": + command = "{} {} a".format(base_cmd, self.name) + elif self.rr_type == "PTR": + command = "-x {}".format(base_cmd, self.name) + elif self.rr_type == "TXT": + command = "{} {} aaaa".format(base_cmd, self.name) + + + + def check(self):