Merge pull request #4 from tldtest/DNSSEC
DNSSEC almost working. Need to add other types of record to verify stuff
This commit is contained in:
commit
1d8a51d60f
|
@ -7,7 +7,7 @@ import threading
|
||||||
|
|
||||||
|
|
||||||
class tlds(ExtraButtonsMixin, admin.ModelAdmin):
|
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'})
|
@button(change_form=True, html_attrs={'style': 'background-color:#88FF88;color:black'})
|
||||||
def refresh(self, request):
|
def refresh(self, request):
|
||||||
|
|
|
@ -26,7 +26,7 @@ class TLD(models.Model):
|
||||||
(253, "private algorithm"),
|
(253, "private algorithm"),
|
||||||
(254, "private algorithm OID"),
|
(254, "private algorithm OID"),
|
||||||
(300, "Unknown"),
|
(300, "Unknown"),
|
||||||
|
(400, "None"),
|
||||||
)
|
)
|
||||||
tld = models.CharField(max_length=30, primary_key=True)
|
tld = models.CharField(max_length=30, primary_key=True)
|
||||||
nsamount = models.IntegerField(default=0)
|
nsamount = models.IntegerField(default=0)
|
||||||
|
|
|
@ -34,6 +34,7 @@ def dbwriter(recs):
|
||||||
db.nsamount = recs["nsserveramount"]
|
db.nsamount = recs["nsserveramount"]
|
||||||
db.v4nsamount = recs["v4resolvers"]
|
db.v4nsamount = recs["v4resolvers"]
|
||||||
db.v6nsamount = recs["v6resolvers"]
|
db.v6nsamount = recs["v6resolvers"]
|
||||||
|
db.dnssec = recs["algo"]
|
||||||
db.save()
|
db.save()
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,26 +45,55 @@ def grabber(data):
|
||||||
"""
|
"""
|
||||||
for tld in data:
|
for tld in data:
|
||||||
nsservers = []
|
nsservers = []
|
||||||
|
dnsseckeys = []
|
||||||
Arecords = 0
|
Arecords = 0
|
||||||
AAAArecords = 0
|
AAAArecords = 0
|
||||||
ns = dns.resolver.resolve(tld, 'NS')
|
try:
|
||||||
for server in ns:
|
ns = dns.resolver.resolve(tld, 'NS')
|
||||||
nsservers.append(server.to_text())
|
for server in ns:
|
||||||
|
nsservers.append(server.to_text())
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
for Arecord in nsservers:
|
for Arecord in nsservers:
|
||||||
try:
|
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
|
Arecords += 1
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
print(e)
|
||||||
for AAAArecord in nsservers:
|
for AAAArecord in nsservers:
|
||||||
try:
|
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
|
AAAArecords += 1
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(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,
|
results = {"tld": tld, "nsserveramount": int(len((nsservers))), "v4resolvers": Arecords,
|
||||||
"v6resolvers": AAAArecords}
|
"v6resolvers": AAAArecords, "algo": algo}
|
||||||
dbwriter(results)
|
dbwriter(results)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue