#!/usr/bin/python3 import json import os import re import subprocess path = os.path.dirname(os.path.abspath(__file__)) try: with open(path + '/dnssec_domains.json') as dnssec_zones: zones = json.load(dnssec_zones) except: zones = [] if __name__ == '__main__': ds_records = {} for zone in zones: cds = subprocess.check_output(['/usr/sbin/knotc', 'zone-read', zone, '@', 'CDS'])[:-1].decode('utf-8') ds = {} try: cds = cds.split(' ') ds['subzone'] = cds[1] ds['id'] = cds[4] ds['algo'] = cds[5] ds['type'] = cds[6] ds['fp'] = cds[7] except: print('Unable to find ksk for', zone) continue ds['ttl'] = 172800 ds_records[zone] = ds with open('dnssec.json', 'w') as dnssec: json.dump(ds_records, dnssec)