Commit b21a9a61 authored by Felix Yan's avatar Felix Yan

verify: try to guess homepage for cdnlist, ignore more dns errors, and try real cdnlist first

parent cecda9e8
www.azure.cn.mschcdn.com
www.gov.cn
a1.cdn-hotels.com
cdn.jsdelivr.net
edge.yunjiasu.com
www.travelsky.net
www.xiumu.org
www.igoldhk.com
\ No newline at end of file
ns1.8844dns.com
www.azure.cn.mschcdn.com
\ No newline at end of file
......@@ -104,16 +104,26 @@ class ChinaListVerify(object):
self.check_whitelist(nameservers)
for testdomain in self.cdnlist:
if testdomain.endswith("." + domain):
try:
self.check_cdnlist(testdomain)
except dns.resolver.NXDOMAIN:
raise NXDOMAIN
# Assuming CDNList for non-TLDs
if domain.count(".") > 1 and tldextract.extract(domain).registered_domain != domain:
try:
self.check_cdnlist(domain)
except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN):
except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN, dns.resolver.NoNameservers, dns.exception.Timeout):
pass
for testdomain in self.cdnlist:
if testdomain.endswith("." + domain):
self.check_cdnlist(testdomain)
# Try to resolve the "homepage" as CDNList, ignore failures
else:
try:
self.check_cdnlist("www." + domain)
except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN, dns.resolver.NoNameservers, dns.exception.Timeout, CDNListNotVerified):
pass
if nxdomain:
raise NXDOMAIN
......@@ -124,7 +134,7 @@ class ChinaListVerify(object):
try:
if self.test_cn_ip(nameserver):
raise NSVerified
except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN):
except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN, dns.resolver.NoNameservers, dns.exception.Timeout):
pass
if nameservers:
......@@ -152,7 +162,7 @@ class ChinaListVerify(object):
try:
self.check_domain(domain)
except NXDOMAIN:
print(colored("NXDOMAIN found in domain: " + domain, "white", "on_red"))
print(colored("NXDOMAIN found in (cdnlist or) domain: " + domain, "white", "on_red"))
except WhitelistMatched:
print(colored("NS Whitelist matched for domain: " + domain, "green"))
except CDNListVerified:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment