66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
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/<string:domain>')
|
|
|
|
|
|
@app.route('/')
|
|
def index():
|
|
return ''
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run(debug=True, host='0.0.0.0')
|