diff options
Diffstat (limited to 'whoiscore.py')
-rw-r--r-- | whoiscore.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/whoiscore.py b/whoiscore.py new file mode 100644 index 0000000..6053508 --- /dev/null +++ b/whoiscore.py @@ -0,0 +1,56 @@ +from ipcalc import IP, Network + +class WhoisDaemon(): + def __init__(data): + self.data = data + + def query(q): + if is_ip(q): + self.search_ip(q) + else: + if is_domain(q): + self.search_domain(q) + else: + return self.print_help() + + def search_ip(self, ip): + result = {} + + # Iterate over all IP block elements + for network in self.data.get_networks(): + for block in network.ip_blocks: + if ip in Network(block): + result['name'] = network.name + for key in network.data: + result[key] = network.data[key] + + return result + + result['error'] = "Red no encontrada" + return result + + def search_domain: + pass + +class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler): + + def handle(self): + data = self.request.recv(100) + cur_thread = threading.current_thread() + response = self.get_header() + "\n" + self.get_answer(data) + "\n" + self.get_footer() + self.request.sendall(response) + +class WhoisServer(TCPServer): + def __init__(self, config): + host = config.get('Servers', 'classic_host') + port = config.get('Servers', 'classic_port') + + TCPServer.__init__(self, (host, port), ThreadedTCPRequestHandler): + + def start(self): + + +class WhoisWebServer(TCPServer): + def __init__(self, config): + self.host = config.get('Servers', 'web_host') + self.port = config.get('Servers', 'web_host') |