verify: try to guess homepage for cdnlist, ignore more dns errors, and try real cdnlist first
This commit is contained in:
parent
cecda9e809
commit
b21a9a6104
|
@ -1,8 +1,5 @@
|
||||||
www.azure.cn.mschcdn.com
|
|
||||||
www.gov.cn
|
|
||||||
a1.cdn-hotels.com
|
a1.cdn-hotels.com
|
||||||
cdn.jsdelivr.net
|
cdn.jsdelivr.net
|
||||||
edge.yunjiasu.com
|
edge.yunjiasu.com
|
||||||
www.travelsky.net
|
ns1.8844dns.com
|
||||||
www.xiumu.org
|
www.azure.cn.mschcdn.com
|
||||||
www.igoldhk.com
|
|
22
verify.py
22
verify.py
|
@ -104,16 +104,26 @@ class ChinaListVerify(object):
|
||||||
|
|
||||||
self.check_whitelist(nameservers)
|
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
|
# Assuming CDNList for non-TLDs
|
||||||
if domain.count(".") > 1 and tldextract.extract(domain).registered_domain != domain:
|
if domain.count(".") > 1 and tldextract.extract(domain).registered_domain != domain:
|
||||||
try:
|
try:
|
||||||
self.check_cdnlist(domain)
|
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
|
pass
|
||||||
|
|
||||||
for testdomain in self.cdnlist:
|
# Try to resolve the "homepage" as CDNList, ignore failures
|
||||||
if testdomain.endswith("." + domain):
|
else:
|
||||||
self.check_cdnlist(testdomain)
|
try:
|
||||||
|
self.check_cdnlist("www." + domain)
|
||||||
|
except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN, dns.resolver.NoNameservers, dns.exception.Timeout, CDNListNotVerified):
|
||||||
|
pass
|
||||||
|
|
||||||
if nxdomain:
|
if nxdomain:
|
||||||
raise NXDOMAIN
|
raise NXDOMAIN
|
||||||
|
@ -124,7 +134,7 @@ class ChinaListVerify(object):
|
||||||
try:
|
try:
|
||||||
if self.test_cn_ip(nameserver):
|
if self.test_cn_ip(nameserver):
|
||||||
raise NSVerified
|
raise NSVerified
|
||||||
except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN):
|
except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN, dns.resolver.NoNameservers, dns.exception.Timeout):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if nameservers:
|
if nameservers:
|
||||||
|
@ -152,7 +162,7 @@ class ChinaListVerify(object):
|
||||||
try:
|
try:
|
||||||
self.check_domain(domain)
|
self.check_domain(domain)
|
||||||
except NXDOMAIN:
|
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:
|
except WhitelistMatched:
|
||||||
print(colored("NS Whitelist matched for domain: " + domain, "green"))
|
print(colored("NS Whitelist matched for domain: " + domain, "green"))
|
||||||
except CDNListVerified:
|
except CDNListVerified:
|
||||||
|
|
Loading…
Reference in New Issue