project-gatekeeper / verify_cname.py
raannakasturi's picture
refactor: Update app.py for CNAME generation and verification
a655661
raw
history blame
1.73 kB
from dns import resolver
from gen_client_cnames import gen_client_cnames
def verify_cname(i_domains):
cname_rec = []
cname_value_expected = []
cname_value_found = []
cname_status = []
cf_domain = "silerudaagartha.eu.org"
cname_recs, cname_values = gen_client_cnames(i_domains, cf_domain)
for rec, value in zip(cname_recs, cname_values):
redirect_domain = None
cname_record = None
status = None
try:
cname_answers = resolver.resolve(rec, 'CNAME')
for answer in cname_answers:
cname_record = answer.to_text().rstrip(".")
if cname_record.startswith('_acme-challenge'):
redirect_domain = cname_record.split('.')[-1]
else:
redirect_domain = cname_record
except Exception as e:
print(f"An error occurred while resolving {rec}: {e}")
redirect_domain = None
cname_record = None
if redirect_domain in cname_values:
status = "Verified"
elif cname_record in cname_values:
status = "Verified"
else:
status = "Not Verified"
cname_rec.append(rec)
cname_value_expected.append(value)
cname_value_found.append(redirect_domain or cname_record)
cname_status.append(status)
table_data = []
for record, expvalue, foundval, stat in zip(cname_rec, cname_value_expected, cname_value_found, cname_status):
table_data.append([record, expvalue, foundval, stat])
return table_data
table_data = verify_cname("thenayankasturi.eu.org, dash.thenayankasturi.eu.org, www.thenayankasturi.eu.org")