from flask import Flask, request from flask_restful import Resource, Api import json app = Flask(__name__) api = Api(app) class WhoIS(): def __init__(self, domain): self.domain = domain self.getWhois() def getWhois(self): self.registrar = 'Synergy Wholesale' self.status = ['clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited', 'clientTransferProhibited https://icann.org/epp#clientTransferProhibited', 'clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited', 'serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited', 'serverTransferProhibited https://icann.org/epp#serverTransferProhibited', 'serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited'] self.registrant = {'name': 'Test Case', 'email': 'tcase@test.com', 'eligibilitytype': 'Company', 'eligibilityid': '123456789'} self.nameservers = ['ns1.dommain.tld', 'ns2.domain.tld'] class DNS(): def __init__(self, domain): self.domain = domain self.getRecords() def getRecords(self): self.a = '1.2.3.4' self.aaaa = '2001:0db8:85a3:0000:0000:8a2e:0370:7334' self.mx = {'mail.domain.tld': 10} self.txt = 'v=spf1 +a +mx +include:spf.hostingplatform.net.au' self.ns = ['ns1.domain.tld', 'ns2.domain.tld'] self.soa = 'ns1.domain.tld. webmaster.domain.tld. 310875860 900 900 1800 60' class Domain(): def __init__(self, domain): self.whois = WhoIS(domain).__dict__ self.dns = DNS(domain).__dict__ class DNSLookup(Resource): def get(self, domain=None): auth = request.headers.get('X-AUTH') if auth != None: return [{'message': 'Please auth'}, 'error'] if domain == None: return [{'message': 'Please specify a domain name'}, 'error'] else: ret = Domain(domain) status = 'success' return [ret.__dict__, status] api.add_resource(DNSLookup, '/lookup', '/lookup/') @app.route('/') def index(): return '' if __name__ == '__main__': app.run(debug=True, host='0.0.0.0')