Merge remote-tracking branch 'origin/master'

This commit is contained in:
JrD
2020-07-29 00:20:50 +08:00
2 changed files with 18 additions and 17 deletions
+2 -2
View File
@@ -4,8 +4,6 @@
"x-via", "x-via",
"x-ser", "x-ser",
"x-cf1", "x-cf1",
"webcache",
"chinacache",
"cache", "cache",
"x-cache", "x-cache",
"x-cached", "x-cached",
@@ -14,6 +12,8 @@
"x-cache-status", "x-cache-status",
"x-cache-hits", "x-cache-hits",
"cc_cache", "cc_cache",
"webcache",
"chinacache",
"x-req-id", "x-req-id",
"x-requestid", "x-requestid",
"cf-request-id", "cf-request-id",
+16 -15
View File
@@ -23,22 +23,27 @@ def check_cname_count(cnames):
def check_cname_keyword(cname): def check_cname_keyword(cname):
for keyword in cdn_cname_keyword.keys(): names = cname.lower().split(',')
if keyword in cname: for name in names:
return True for keyword in cdn_cname_keyword.keys():
if keyword in name:
return True
def check_header_key(header): def check_header_key(header):
header = set(map(lambda x: x.lower(), header.keys()))
for key in cdn_header_key: for key in cdn_header_key:
if key in header: if key in header:
return True return True
def check_cdn_cidr(ip): def check_cdn_cidr(content):
ip = ipaddress.ip_address(ip) ips = set(content.split(','))
for cidr in cdn_ip_cidr: for ip in ips:
if ip in ipaddress.ip_network(cidr): ip = ipaddress.ip_address(ip)
return True for cidr in cdn_ip_cidr:
if ip in ipaddress.ip_network(cidr):
return True
def check_cdn_asn(asn): def check_cdn_asn(asn):
@@ -50,10 +55,6 @@ def check_cdn(data):
for index, item in enumerate(data): for index, item in enumerate(data):
cname = item.get('cname') cname = item.get('cname')
if cname: if cname:
cnames = cname.split(',')
if check_cname_count(cnames):
data[index]['cdn'] = 1
continue
if check_cname_keyword(cname): if check_cname_keyword(cname):
data[index]['cdn'] = 1 data[index]['cdn'] = 1
continue continue
@@ -64,9 +65,9 @@ def check_cdn(data):
data[index]['cdn'] = 1 data[index]['cdn'] = 1
continue continue
kind = item.get('type') kind = item.get('type')
ip = item.get('content') content = item.get('content')
if kind == 'A' and ip: if kind == 'A' and content:
if check_cdn_cidr(ip): if check_cdn_cidr(content):
data[index]['cdn'] = 1 data[index]['cdn'] = 1
continue continue
asn = item.get('asn') asn = item.get('asn')