dns-check-py/check-gpt4.py

37 lines
1.2 KiB
Python
Raw Permalink Normal View History

2023-11-30 14:53:37 +01:00
import requests
from dns import resolver, rdatatype
__API_KEY = 'YXJkQU1VVkRoSGZyV0FP' # fill in your actual api key
__API_URL = 'https://dns.it53.nl:8443/api/v1/servers/localhost/zones'
__MASTER_DNS = 'ns1.it53.nl' # fill in your actual master DNS
headers = {
'X-API-Key': __API_KEY,
}
response = requests.get(__API_URL, headers=headers)
data = response.json()
for zone in data:
zone_name = zone['name'].rstrip('.')
try:
answers = resolver.resolve(zone_name, 'NS')
ns_records = [rdata.to_text().rstrip('.') for rdata in answers] # strip ending '.'
if __MASTER_DNS not in ns_records:
print(f'🚨 {zone_name} does not point to master DNS: {__MASTER_DNS}')
continue
except Exception as e:
print(f'🚨 Error resolving NS for {zone_name}: {e}')
continue
try:
soa_answer = resolver.resolve(zone_name, 'SOA')
if __MASTER_DNS not in soa_answer.rrset.to_text():
print(f'🚨 SOA record of {zone_name} is inconsistent with master DNS: {__MASTER_DNS}')
else:
print(f'✅ DNS consistency check passed for {zone_name}.')
except Exception as e:
print(f'🚨 Error resolving SOA for {zone_name}: {e}')