Skip to content

Commit

Permalink
Merge pull request #4 from tldtest/DNSSEC
Browse files Browse the repository at this point in the history
DNSSEC almost working. Need to add other types of record to verify stuff
  • Loading branch information
altf4arnold authored Feb 26, 2024
2 parents 575959e + 06ef8ab commit 1d8a51d
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 8 deletions.
2 changes: 1 addition & 1 deletion tldtester/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@


class tlds(ExtraButtonsMixin, admin.ModelAdmin):
list_display = ('tld', 'nsamount', 'v4nsamount', 'v6nsamount', 'lastEdition')
list_display = ('tld', 'nsamount', 'v4nsamount', 'v6nsamount', 'dnssec', 'lastEdition')

@button(change_form=True, html_attrs={'style': 'background-color:#88FF88;color:black'})
def refresh(self, request):
Expand Down
2 changes: 1 addition & 1 deletion tldtester/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class TLD(models.Model):
(253, "private algorithm"),
(254, "private algorithm OID"),
(300, "Unknown"),

(400, "None"),
)
tld = models.CharField(max_length=30, primary_key=True)
nsamount = models.IntegerField(default=0)
Expand Down
42 changes: 36 additions & 6 deletions tldtester/sorter.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def dbwriter(recs):
db.nsamount = recs["nsserveramount"]
db.v4nsamount = recs["v4resolvers"]
db.v6nsamount = recs["v6resolvers"]
db.dnssec = recs["algo"]
db.save()


Expand All @@ -44,26 +45,55 @@ def grabber(data):
"""
for tld in data:
nsservers = []
dnsseckeys = []
Arecords = 0
AAAArecords = 0
ns = dns.resolver.resolve(tld, 'NS')
for server in ns:
nsservers.append(server.to_text())
try:
ns = dns.resolver.resolve(tld, 'NS')
for server in ns:
nsservers.append(server.to_text())
except Exception as e:
print(e)
for Arecord in nsservers:
try:
dns.resolver.resolve(Arecord, 'A')
try:
dns.resolver.resolve(Arecord, 'A')
except Exception as e:
# retry
print(e)
dns.resolver.resolve(Arecord, 'A')
Arecords += 1
except Exception as e:
print(e)
for AAAArecord in nsservers:
try:
dns.resolver.resolve(AAAArecord, 'AAAA')
try:
dns.resolver.resolve(AAAArecord, 'AAAA')
except Exception as e:
# retry
print(e)
dns.resolver.resolve(AAAArecord, 'AAAA')
AAAArecords += 1
except Exception as e:
print(e)
try:
try:
ds = dns.resolver.resolve(tld, 'DS')
except Exception as e:
# retry
print(e)
ds = dns.resolver.resolve(tld, 'DS')
for dsrecord in ds:
algo = dsrecord.to_text()
line = algo.split()
dnsseckeys.append(int(line[1]))
algo = max(list(dict.fromkeys(dnsseckeys)))
except Exception as e:
algo = 400
print(e)

results = {"tld": tld, "nsserveramount": int(len((nsservers))), "v4resolvers": Arecords,
"v6resolvers": AAAArecords}
"v6resolvers": AAAArecords, "algo": algo}
dbwriter(results)


Expand Down

0 comments on commit 1d8a51d

Please sign in to comment.