summaryrefslogtreecommitdiff
path: root/whoiscore.py
diff options
context:
space:
mode:
Diffstat (limited to 'whoiscore.py')
-rw-r--r--whoiscore.py56
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')
nihil fit ex nihilo