mirror of
https://github.com/shmilylty/OneForAll.git
synced 2026-10-25 00:56:14 +08:00
添加cdn判断模块
This commit is contained in:
+13
-12
@@ -69,6 +69,7 @@ class Database(object):
|
|||||||
f'cname text,'
|
f'cname text,'
|
||||||
f'content text,'
|
f'content text,'
|
||||||
f'public int,'
|
f'public int,'
|
||||||
|
f'cdn int,'
|
||||||
f'status int,'
|
f'status int,'
|
||||||
f'reason text,'
|
f'reason text,'
|
||||||
f'title text,'
|
f'title text,'
|
||||||
@@ -79,6 +80,7 @@ class Database(object):
|
|||||||
f'ttl text,'
|
f'ttl text,'
|
||||||
f'cidr text,'
|
f'cidr text,'
|
||||||
f'asn text,'
|
f'asn text,'
|
||||||
|
f'org text,'
|
||||||
f'ip2region text,'
|
f'ip2region text,'
|
||||||
f'ip2location text,'
|
f'ip2location text,'
|
||||||
f'resolver text,'
|
f'resolver text,'
|
||||||
@@ -104,13 +106,14 @@ class Database(object):
|
|||||||
try:
|
try:
|
||||||
self.conn.bulk_query(
|
self.conn.bulk_query(
|
||||||
f'insert into "{table_name}" (id, type, alive, resolve, request, new,'
|
f'insert into "{table_name}" (id, type, alive, resolve, request, new,'
|
||||||
f'url, subdomain, port, level, cname, content, public, status, reason,'
|
f'url, subdomain, port, level, cname, content, public, cdn, status,'
|
||||||
f'title, banner, header, response, times, ttl, cidr, asn, ip2region,'
|
f'reason, title, banner, header, response, times, ttl, cidr, asn, org,'
|
||||||
f'ip2location, resolver, module, source, elapse, find, brute, valid) '
|
f' ip2region, ip2location, resolver, module, source, elapse, find,'
|
||||||
|
f'brute, valid) '
|
||||||
f'values (:id, :type, :alive, :resolve, :request, :new, :url, '
|
f'values (:id, :type, :alive, :resolve, :request, :new, :url, '
|
||||||
f':subdomain, :port, :level, :cname, :content, :public, :status,'
|
f':subdomain, :port, :level, :cname, :content, :public, :cdn, :status,'
|
||||||
f':reason, :title, :banner, :header, :response, :times, :ttl, :cidr,'
|
f':reason, :title, :banner, :header, :response, :times, :ttl, :cidr,'
|
||||||
f':asn, :ip2region, :ip2location, :resolver, :module, :source,'
|
f':asn, :org, :ip2region, :ip2location, :resolver, :module, :source,'
|
||||||
f':elapse, :find, :brute, :valid)', results)
|
f':elapse, :find, :brute, :valid)', results)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.log('ERROR', e)
|
logger.log('ERROR', e)
|
||||||
@@ -124,8 +127,7 @@ class Database(object):
|
|||||||
"""
|
"""
|
||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
logger.log('TRACE', f'Determining whether the {table_name} table exists')
|
logger.log('TRACE', f'Determining whether the {table_name} table exists')
|
||||||
results = self.query(f'select count() from sqlite_master '
|
results = self.query(f'select count() from sqlite_master where type = "table" and'
|
||||||
f'where type = "table" and '
|
|
||||||
f' name = "{table_name}"')
|
f' name = "{table_name}"')
|
||||||
if results.scalar() == 0:
|
if results.scalar() == 0:
|
||||||
return False
|
return False
|
||||||
@@ -232,11 +234,10 @@ class Database(object):
|
|||||||
:param str limit: limit value
|
:param str limit: limit value
|
||||||
"""
|
"""
|
||||||
table_name = table_name.replace('.', '_')
|
table_name = table_name.replace('.', '_')
|
||||||
query = f'select id, type, new, alive, request, resolve, url, ' \
|
query = f'select id, type, new, alive, request, resolve, url, subdomain, level,' \
|
||||||
f'subdomain, level, cname, content, public, port, status, ' \
|
f'cname, content, public, cdn, port, status, reason, title, banner,' \
|
||||||
f'reason, title, banner, times, ttl, cidr, asn, ip2region, ' \
|
f'times, ttl, cidr, asn, org, ip2region, ip2location, resolver, module,' \
|
||||||
f'ip2location, resolver, module, source, elapse, find, brute, valid ' \
|
f'source, elapse, find, brute, valid from "{table_name}"'
|
||||||
f'from "{table_name}"'
|
|
||||||
if alive and limit:
|
if alive and limit:
|
||||||
if limit in ['resolve', 'request']:
|
if limit in ['resolve', 'request']:
|
||||||
where = f' where {limit} = 1'
|
where = f' where {limit} = 1'
|
||||||
|
|||||||
+2
-2
@@ -63,10 +63,10 @@ class IPAsnInfo(object):
|
|||||||
def find(self, ip):
|
def find(self, ip):
|
||||||
asn = self.asn.find(ip)
|
asn = self.asn.find(ip)
|
||||||
if asn:
|
if asn:
|
||||||
result = {'cidr': asn[2], 'asn': f'AS{asn[3]} {asn[4]}'}
|
result = {'cidr': asn[2], 'asn': f'AS{asn[3]}', 'org': asn[4]}
|
||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
return {'cidr': '', 'asn': ''}
|
return {'cidr': '', 'asn': '', 'org': ''}
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
+6
-1
@@ -4,7 +4,6 @@ Module base class
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import re
|
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
|
|
||||||
@@ -278,6 +277,7 @@ class Module(object):
|
|||||||
'cname': None,
|
'cname': None,
|
||||||
'content': None,
|
'content': None,
|
||||||
'public': None,
|
'public': None,
|
||||||
|
'cdn': None,
|
||||||
'status': None,
|
'status': None,
|
||||||
'reason': None,
|
'reason': None,
|
||||||
'title': None,
|
'title': None,
|
||||||
@@ -288,6 +288,7 @@ class Module(object):
|
|||||||
'ttl': None,
|
'ttl': None,
|
||||||
'cidr': None,
|
'cidr': None,
|
||||||
'asn': None,
|
'asn': None,
|
||||||
|
'org': None,
|
||||||
'ip2region': None,
|
'ip2region': None,
|
||||||
'ip2location': None,
|
'ip2location': None,
|
||||||
'resolver': None,
|
'resolver': None,
|
||||||
@@ -319,8 +320,10 @@ class Module(object):
|
|||||||
times = record.get('times')
|
times = record.get('times')
|
||||||
ttl = record.get('ttl')
|
ttl = record.get('ttl')
|
||||||
public = record.get('public')
|
public = record.get('public')
|
||||||
|
cdn = record.get('cdn')
|
||||||
cidr = record.get('cidr')
|
cidr = record.get('cidr')
|
||||||
asn = record.get('asn')
|
asn = record.get('asn')
|
||||||
|
org = record.get('org')
|
||||||
ip2region = record.get('ip2region')
|
ip2region = record.get('ip2region')
|
||||||
ip2location = record.get('ip2location')
|
ip2location = record.get('ip2location')
|
||||||
if isinstance(cname, list):
|
if isinstance(cname, list):
|
||||||
@@ -342,6 +345,7 @@ class Module(object):
|
|||||||
'cname': cname,
|
'cname': cname,
|
||||||
'content': content,
|
'content': content,
|
||||||
'public': public,
|
'public': public,
|
||||||
|
'cdn': cdn,
|
||||||
'status': None,
|
'status': None,
|
||||||
'reason': reason,
|
'reason': reason,
|
||||||
'title': None,
|
'title': None,
|
||||||
@@ -352,6 +356,7 @@ class Module(object):
|
|||||||
'ttl': ttl,
|
'ttl': ttl,
|
||||||
'cidr': cidr,
|
'cidr': cidr,
|
||||||
'asn': asn,
|
'asn': asn,
|
||||||
|
'org': org,
|
||||||
'ip2region': ip2region,
|
'ip2region': ip2region,
|
||||||
'ip2location': ip2location,
|
'ip2location': ip2location,
|
||||||
'resolver': resolver,
|
'resolver': resolver,
|
||||||
|
|||||||
+2
-1
@@ -1,3 +1,4 @@
|
|||||||
|
import json
|
||||||
import asyncio
|
import asyncio
|
||||||
import functools
|
import functools
|
||||||
|
|
||||||
@@ -171,7 +172,7 @@ def request_callback(future, index, datas):
|
|||||||
datas[index]['alive'] = 1
|
datas[index]['alive'] = 1
|
||||||
headers = resp.headers
|
headers = resp.headers
|
||||||
datas[index]['banner'] = utils.get_sample_banner(headers)
|
datas[index]['banner'] = utils.get_sample_banner(headers)
|
||||||
datas[index]['header'] = str(dict(headers))[1:-1]
|
datas[index]['header'] = json.dumps(dict(headers))
|
||||||
if isinstance(text, str):
|
if isinstance(text, str):
|
||||||
title = get_title(text).strip()
|
title = get_title(text).strip()
|
||||||
datas[index]['title'] = utils.remove_invalid_string(title)
|
datas[index]['title'] = utils.remove_invalid_string(title)
|
||||||
|
|||||||
@@ -107,6 +107,7 @@ def deal_output(output_path):
|
|||||||
ttls = list()
|
ttls = list()
|
||||||
cidrs = list()
|
cidrs = list()
|
||||||
asns = list()
|
asns = list()
|
||||||
|
orgs = list()
|
||||||
locs = list()
|
locs = list()
|
||||||
regs = list()
|
regs = list()
|
||||||
answers = data.get('answers')
|
answers = data.get('answers')
|
||||||
@@ -123,6 +124,7 @@ def deal_output(output_path):
|
|||||||
asn_info = ip_asn.find(ip)
|
asn_info = ip_asn.find(ip)
|
||||||
cidrs.append(asn_info.get('cidr'))
|
cidrs.append(asn_info.get('cidr'))
|
||||||
asns.append(asn_info.get('asn'))
|
asns.append(asn_info.get('asn'))
|
||||||
|
orgs.append(asn_info.get('org'))
|
||||||
loc = f'{ip_geo.get_country_long(ip)} ' \
|
loc = f'{ip_geo.get_country_long(ip)} ' \
|
||||||
f'{ip_geo.get_region(ip)} ' \
|
f'{ip_geo.get_region(ip)} ' \
|
||||||
f'{ip_geo.get_city(ip)}'
|
f'{ip_geo.get_city(ip)}'
|
||||||
@@ -137,6 +139,7 @@ def deal_output(output_path):
|
|||||||
record['ttl'] = ','.join(ttls)
|
record['ttl'] = ','.join(ttls)
|
||||||
record['cidr'] = ','.join(cidrs)
|
record['cidr'] = ','.join(cidrs)
|
||||||
record['asn'] = ','.join(asns)
|
record['asn'] = ','.join(asns)
|
||||||
|
record['org'] = ','.join(orgs)
|
||||||
record['ip2location'] = ','.join(locs)
|
record['ip2location'] = ','.join(locs)
|
||||||
record['ip2region'] = ','.join(regs)
|
record['ip2region'] = ','.join(regs)
|
||||||
records[qname] = record
|
records[qname] = record
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import json
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
@@ -215,6 +216,11 @@ def check_format(format, count):
|
|||||||
return 'csv'
|
return 'csv'
|
||||||
|
|
||||||
|
|
||||||
|
def load_json(path):
|
||||||
|
with open(path) as fp:
|
||||||
|
return json.load(fp)
|
||||||
|
|
||||||
|
|
||||||
def save_db(name, data, module):
|
def save_db(name, data, module):
|
||||||
"""
|
"""
|
||||||
Save request results to database
|
Save request results to database
|
||||||
|
|||||||
@@ -0,0 +1,134 @@
|
|||||||
|
[
|
||||||
|
"10576",
|
||||||
|
"10762",
|
||||||
|
"11748",
|
||||||
|
"131099",
|
||||||
|
"132601",
|
||||||
|
"133496",
|
||||||
|
"134409",
|
||||||
|
"135295",
|
||||||
|
"136764",
|
||||||
|
"137187",
|
||||||
|
"13777",
|
||||||
|
"13890",
|
||||||
|
"14103",
|
||||||
|
"14520",
|
||||||
|
"17132",
|
||||||
|
"199251",
|
||||||
|
"200013",
|
||||||
|
"200325",
|
||||||
|
"200856",
|
||||||
|
"201263",
|
||||||
|
"202294",
|
||||||
|
"203075",
|
||||||
|
"203139",
|
||||||
|
"204248",
|
||||||
|
"204286",
|
||||||
|
"204545",
|
||||||
|
"206227",
|
||||||
|
"206734",
|
||||||
|
"206848",
|
||||||
|
"206986",
|
||||||
|
"207158",
|
||||||
|
"208559",
|
||||||
|
"209403",
|
||||||
|
"21030",
|
||||||
|
"21257",
|
||||||
|
"23327",
|
||||||
|
"23393",
|
||||||
|
"23637",
|
||||||
|
"23794",
|
||||||
|
"24997",
|
||||||
|
"26492",
|
||||||
|
"268843",
|
||||||
|
"28709",
|
||||||
|
"29264",
|
||||||
|
"30282",
|
||||||
|
"30637",
|
||||||
|
"328126",
|
||||||
|
"36408",
|
||||||
|
"38107",
|
||||||
|
"397192",
|
||||||
|
"40366",
|
||||||
|
"43303",
|
||||||
|
"44907",
|
||||||
|
"46071",
|
||||||
|
"46177",
|
||||||
|
"47542",
|
||||||
|
"49287",
|
||||||
|
"49689",
|
||||||
|
"51286",
|
||||||
|
"55082",
|
||||||
|
"55254",
|
||||||
|
"56636",
|
||||||
|
"57363",
|
||||||
|
"58127",
|
||||||
|
"59730",
|
||||||
|
"59776",
|
||||||
|
"60068",
|
||||||
|
"60626",
|
||||||
|
"60922",
|
||||||
|
"61107",
|
||||||
|
"61159",
|
||||||
|
"62026",
|
||||||
|
"62229",
|
||||||
|
"63062",
|
||||||
|
"64232",
|
||||||
|
"8868",
|
||||||
|
"9053",
|
||||||
|
"55770",
|
||||||
|
"49846",
|
||||||
|
"49249",
|
||||||
|
"48163",
|
||||||
|
"45700",
|
||||||
|
"43639",
|
||||||
|
"39836",
|
||||||
|
"393560",
|
||||||
|
"393234",
|
||||||
|
"36183",
|
||||||
|
"35994",
|
||||||
|
"35993",
|
||||||
|
"35204",
|
||||||
|
"34850",
|
||||||
|
"34164",
|
||||||
|
"33905",
|
||||||
|
"32787",
|
||||||
|
"31377",
|
||||||
|
"31110",
|
||||||
|
"31109",
|
||||||
|
"31108",
|
||||||
|
"31107",
|
||||||
|
"30675",
|
||||||
|
"24319",
|
||||||
|
"23903",
|
||||||
|
"23455",
|
||||||
|
"23454",
|
||||||
|
"22207",
|
||||||
|
"21399",
|
||||||
|
"21357",
|
||||||
|
"21342",
|
||||||
|
"20940",
|
||||||
|
"20189",
|
||||||
|
"18717",
|
||||||
|
"18680",
|
||||||
|
"17334",
|
||||||
|
"16702",
|
||||||
|
"16625",
|
||||||
|
"12222",
|
||||||
|
"209101",
|
||||||
|
"201585",
|
||||||
|
"135429",
|
||||||
|
"395747",
|
||||||
|
"394536",
|
||||||
|
"209242",
|
||||||
|
"203898",
|
||||||
|
"202623",
|
||||||
|
"14789",
|
||||||
|
"133877",
|
||||||
|
"13335",
|
||||||
|
"132892",
|
||||||
|
"21859",
|
||||||
|
"6185",
|
||||||
|
"47823",
|
||||||
|
"4134"
|
||||||
|
]
|
||||||
@@ -0,0 +1,542 @@
|
|||||||
|
[
|
||||||
|
"223.99.255.0/24",
|
||||||
|
"71.152.0.0/17",
|
||||||
|
"219.153.73.0/24",
|
||||||
|
"125.39.46.0/24",
|
||||||
|
"190.93.240.0/20",
|
||||||
|
"14.0.113.0/24",
|
||||||
|
"14.0.47.0/24",
|
||||||
|
"113.20.148.0/22",
|
||||||
|
"103.75.201.0/24",
|
||||||
|
"1.32.239.0/24",
|
||||||
|
"101.79.239.0/24",
|
||||||
|
"52.46.0.0/18",
|
||||||
|
"125.88.189.0/24",
|
||||||
|
"150.138.248.0/24",
|
||||||
|
"180.153.235.0/24",
|
||||||
|
"205.251.252.0/23",
|
||||||
|
"103.1.65.0/24",
|
||||||
|
"115.127.227.0/24",
|
||||||
|
"14.0.42.0/24",
|
||||||
|
"109.199.58.0/24",
|
||||||
|
"116.211.155.0/24",
|
||||||
|
"112.253.3.0/24",
|
||||||
|
"14.0.58.0/24",
|
||||||
|
"223.112.227.0/24",
|
||||||
|
"113.20.150.0/23",
|
||||||
|
"61.182.141.0/24",
|
||||||
|
"34.216.51.0/25",
|
||||||
|
"124.95.188.0/24",
|
||||||
|
"42.51.25.0/24",
|
||||||
|
"183.136.133.0/24",
|
||||||
|
"52.220.191.0/26",
|
||||||
|
"119.84.93.0/24",
|
||||||
|
"182.118.38.0/24",
|
||||||
|
"13.59.250.0/26",
|
||||||
|
"54.178.75.0/24",
|
||||||
|
"119.84.92.0/24",
|
||||||
|
"183.131.62.0/24",
|
||||||
|
"111.32.136.0/24",
|
||||||
|
"13.124.199.0/24",
|
||||||
|
"111.47.227.0/24",
|
||||||
|
"104.37.177.0/24",
|
||||||
|
"14.0.50.0/24",
|
||||||
|
"183.230.70.0/24",
|
||||||
|
"114.111.59.0/24",
|
||||||
|
"220.181.135.0/24",
|
||||||
|
"112.140.32.0/19",
|
||||||
|
"101.79.230.0/24",
|
||||||
|
"14.0.115.0/24",
|
||||||
|
"103.28.248.0/22",
|
||||||
|
"117.34.72.0/24",
|
||||||
|
"109.199.57.0/24",
|
||||||
|
"101.79.149.0/24",
|
||||||
|
"116.128.128.0/24",
|
||||||
|
"115.231.186.0/24",
|
||||||
|
"103.22.200.0/22",
|
||||||
|
"61.155.165.0/24",
|
||||||
|
"113.20.148.0/23",
|
||||||
|
"185.254.242.0/24",
|
||||||
|
"59.36.120.0/24",
|
||||||
|
"70.132.0.0/18",
|
||||||
|
"116.31.126.0/24",
|
||||||
|
"119.147.134.0/24",
|
||||||
|
"115.127.246.0/24",
|
||||||
|
"52.47.139.0/24",
|
||||||
|
"118.107.175.0/24",
|
||||||
|
"52.78.247.128/26",
|
||||||
|
"110.93.176.0/20",
|
||||||
|
"54.240.128.0/18",
|
||||||
|
"46.51.216.0/21",
|
||||||
|
"119.31.251.0/24",
|
||||||
|
"125.39.18.0/24",
|
||||||
|
"108.175.33.0/24",
|
||||||
|
"1.31.128.0/24",
|
||||||
|
"61.151.163.0/24",
|
||||||
|
"103.95.132.0/24",
|
||||||
|
"58.215.118.0/24",
|
||||||
|
"54.233.255.128/26",
|
||||||
|
"120.52.113.0/24",
|
||||||
|
"118.107.174.0/24",
|
||||||
|
"1.32.242.0/24",
|
||||||
|
"221.195.34.0/24",
|
||||||
|
"101.79.228.0/24",
|
||||||
|
"205.251.249.0/24",
|
||||||
|
"113.200.91.0/24",
|
||||||
|
"101.79.146.0/24",
|
||||||
|
"221.238.22.0/24",
|
||||||
|
"134.19.183.0/24",
|
||||||
|
"110.93.160.0/20",
|
||||||
|
"180.97.158.0/24",
|
||||||
|
"115.127.251.0/24",
|
||||||
|
"119.167.147.0/24",
|
||||||
|
"115.127.238.0/24",
|
||||||
|
"115.127.240.0/22",
|
||||||
|
"14.0.48.0/24",
|
||||||
|
"115.127.240.0/24",
|
||||||
|
"113.7.183.0/24",
|
||||||
|
"112.140.128.0/20",
|
||||||
|
"115.127.255.0/24",
|
||||||
|
"114.31.36.0/22",
|
||||||
|
"101.79.232.0/24",
|
||||||
|
"218.98.44.0/24",
|
||||||
|
"106.119.182.0/24",
|
||||||
|
"101.79.167.0/24",
|
||||||
|
"125.39.5.0/24",
|
||||||
|
"58.49.105.0/24",
|
||||||
|
"124.202.164.0/24",
|
||||||
|
"111.177.6.0/24",
|
||||||
|
"61.133.127.0/24",
|
||||||
|
"185.11.124.0/22",
|
||||||
|
"150.138.150.0/24",
|
||||||
|
"115.127.248.0/24",
|
||||||
|
"103.74.80.0/22",
|
||||||
|
"101.79.166.0/24",
|
||||||
|
"101.71.55.0/24",
|
||||||
|
"198.41.128.0/17",
|
||||||
|
"117.21.219.0/24",
|
||||||
|
"103.231.170.0/24",
|
||||||
|
"221.204.202.0/24",
|
||||||
|
"101.79.224.0/24",
|
||||||
|
"112.25.16.0/24",
|
||||||
|
"111.177.3.0/24",
|
||||||
|
"204.246.168.0/22",
|
||||||
|
"103.40.7.0/24",
|
||||||
|
"134.226.0.0/16",
|
||||||
|
"52.15.127.128/26",
|
||||||
|
"122.190.2.0/24",
|
||||||
|
"101.203.192.0/18",
|
||||||
|
"1.32.238.0/24",
|
||||||
|
"101.79.144.0/24",
|
||||||
|
"176.34.28.0/24",
|
||||||
|
"119.84.15.0/24",
|
||||||
|
"18.216.170.128/25",
|
||||||
|
"222.88.94.0/24",
|
||||||
|
"101.79.150.0/24",
|
||||||
|
"114.111.48.0/21",
|
||||||
|
"124.95.168.0/24",
|
||||||
|
"114.111.48.0/20",
|
||||||
|
"110.93.176.0/21",
|
||||||
|
"223.111.127.0/24",
|
||||||
|
"117.23.61.0/24",
|
||||||
|
"140.207.120.0/24",
|
||||||
|
"157.255.26.0/24",
|
||||||
|
"221.204.14.0/24",
|
||||||
|
"183.222.96.0/24",
|
||||||
|
"104.37.180.0/24",
|
||||||
|
"42.236.93.0/24",
|
||||||
|
"111.63.51.0/24",
|
||||||
|
"114.31.32.0/20",
|
||||||
|
"118.180.50.0/24",
|
||||||
|
"222.240.184.0/24",
|
||||||
|
"205.251.192.0/19",
|
||||||
|
"101.79.225.0/24",
|
||||||
|
"115.127.228.0/24",
|
||||||
|
"113.20.148.0/24",
|
||||||
|
"61.213.176.0/24",
|
||||||
|
"112.65.75.0/24",
|
||||||
|
"111.13.147.0/24",
|
||||||
|
"113.20.145.0/24",
|
||||||
|
"103.253.132.0/24",
|
||||||
|
"52.222.128.0/17",
|
||||||
|
"183.203.7.0/24",
|
||||||
|
"27.221.27.0/24",
|
||||||
|
"103.79.134.0/24",
|
||||||
|
"123.150.187.0/24",
|
||||||
|
"103.15.194.0/24",
|
||||||
|
"162.158.0.0/15",
|
||||||
|
"61.163.30.0/24",
|
||||||
|
"182.140.227.0/24",
|
||||||
|
"112.25.60.0/24",
|
||||||
|
"117.148.161.0/24",
|
||||||
|
"61.182.136.0/24",
|
||||||
|
"114.31.56.0/22",
|
||||||
|
"64.252.128.0/18",
|
||||||
|
"183.61.185.0/24",
|
||||||
|
"115.127.250.0/24",
|
||||||
|
"150.138.138.0/24",
|
||||||
|
"13.210.67.128/26",
|
||||||
|
"211.162.64.0/24",
|
||||||
|
"61.174.9.0/24",
|
||||||
|
"14.0.112.0/24",
|
||||||
|
"52.52.191.128/26",
|
||||||
|
"27.221.124.0/24",
|
||||||
|
"103.4.203.0/24",
|
||||||
|
"103.14.10.0/24",
|
||||||
|
"34.232.163.208/29",
|
||||||
|
"114.31.48.0/20",
|
||||||
|
"59.51.81.0/24",
|
||||||
|
"183.60.235.0/24",
|
||||||
|
"101.227.206.0/24",
|
||||||
|
"125.39.174.0/24",
|
||||||
|
"119.167.246.0/24",
|
||||||
|
"118.107.160.0/21",
|
||||||
|
"223.166.151.0/24",
|
||||||
|
"110.93.160.0/19",
|
||||||
|
"204.246.172.0/23",
|
||||||
|
"119.31.253.0/24",
|
||||||
|
"143.204.0.0/16",
|
||||||
|
"14.0.60.0/24",
|
||||||
|
"123.151.76.0/24",
|
||||||
|
"116.193.80.0/24",
|
||||||
|
"120.241.102.0/24",
|
||||||
|
"180.96.20.0/24",
|
||||||
|
"216.137.32.0/19",
|
||||||
|
"223.94.95.0/24",
|
||||||
|
"103.4.201.0/24",
|
||||||
|
"14.0.56.0/24",
|
||||||
|
"115.127.234.0/24",
|
||||||
|
"113.20.144.0/23",
|
||||||
|
"103.248.104.0/24",
|
||||||
|
"122.143.15.0/24",
|
||||||
|
"101.79.229.0/24",
|
||||||
|
"101.79.163.0/24",
|
||||||
|
"104.37.112.0/22",
|
||||||
|
"115.127.253.0/24",
|
||||||
|
"141.101.64.0/18",
|
||||||
|
"113.20.144.0/22",
|
||||||
|
"101.79.155.0/24",
|
||||||
|
"117.148.160.0/24",
|
||||||
|
"124.193.166.0/24",
|
||||||
|
"109.94.168.0/24",
|
||||||
|
"203.90.247.0/24",
|
||||||
|
"101.79.208.0/21",
|
||||||
|
"182.118.12.0/24",
|
||||||
|
"114.31.58.0/23",
|
||||||
|
"202.162.109.0/24",
|
||||||
|
"101.79.164.0/24",
|
||||||
|
"58.216.2.0/24",
|
||||||
|
"222.216.190.0/24",
|
||||||
|
"101.79.165.0/24",
|
||||||
|
"111.6.191.0/24",
|
||||||
|
"1.255.100.0/24",
|
||||||
|
"52.84.0.0/15",
|
||||||
|
"112.65.74.0/24",
|
||||||
|
"183.250.179.0/24",
|
||||||
|
"101.79.236.0/24",
|
||||||
|
"119.31.252.0/24",
|
||||||
|
"113.20.150.0/24",
|
||||||
|
"60.12.166.0/24",
|
||||||
|
"101.79.234.0/24",
|
||||||
|
"113.17.174.0/24",
|
||||||
|
"101.79.237.0/24",
|
||||||
|
"61.54.46.0/24",
|
||||||
|
"118.212.233.0/24",
|
||||||
|
"183.110.242.0/24",
|
||||||
|
"150.138.149.0/24",
|
||||||
|
"117.34.13.0/24",
|
||||||
|
"115.127.245.0/24",
|
||||||
|
"14.0.102.0/24",
|
||||||
|
"14.0.109.0/24",
|
||||||
|
"61.130.28.0/24",
|
||||||
|
"113.20.151.0/24",
|
||||||
|
"219.159.84.0/24",
|
||||||
|
"114.111.62.0/24",
|
||||||
|
"172.64.0.0/13",
|
||||||
|
"61.155.222.0/24",
|
||||||
|
"120.52.29.0/24",
|
||||||
|
"115.127.231.0/24",
|
||||||
|
"14.0.49.0/24",
|
||||||
|
"113.202.0.0/16",
|
||||||
|
"103.248.104.0/22",
|
||||||
|
"205.251.250.0/23",
|
||||||
|
"103.216.136.0/22",
|
||||||
|
"118.107.160.0/20",
|
||||||
|
"109.87.0.0/21",
|
||||||
|
"54.239.128.0/18",
|
||||||
|
"115.127.224.0/19",
|
||||||
|
"111.202.98.0/24",
|
||||||
|
"109.94.169.0/24",
|
||||||
|
"59.38.112.0/24",
|
||||||
|
"204.246.176.0/20",
|
||||||
|
"123.133.84.0/24",
|
||||||
|
"103.4.200.0/24",
|
||||||
|
"111.161.109.0/24",
|
||||||
|
"112.84.34.0/24",
|
||||||
|
"103.82.129.0/24",
|
||||||
|
"183.3.254.0/24",
|
||||||
|
"112.137.184.0/21",
|
||||||
|
"122.227.237.0/24",
|
||||||
|
"36.42.75.0/24",
|
||||||
|
"13.35.0.0/16",
|
||||||
|
"101.226.4.0/24",
|
||||||
|
"116.140.35.0/24",
|
||||||
|
"58.250.143.0/24",
|
||||||
|
"13.54.63.128/26",
|
||||||
|
"205.251.254.0/24",
|
||||||
|
"173.245.48.0/20",
|
||||||
|
"183.61.177.0/24",
|
||||||
|
"113.20.144.0/24",
|
||||||
|
"104.37.183.0/24",
|
||||||
|
"35.158.136.0/24",
|
||||||
|
"116.211.121.0/24",
|
||||||
|
"42.236.94.0/24",
|
||||||
|
"117.34.91.0/24",
|
||||||
|
"123.6.13.0/24",
|
||||||
|
"13.224.0.0/14",
|
||||||
|
"113.20.146.0/24",
|
||||||
|
"58.58.81.0/24",
|
||||||
|
"52.124.128.0/17",
|
||||||
|
"122.228.198.0/24",
|
||||||
|
"197.234.240.0/22",
|
||||||
|
"99.86.0.0/16",
|
||||||
|
"144.220.0.0/16",
|
||||||
|
"119.188.97.0/24",
|
||||||
|
"36.27.212.0/24",
|
||||||
|
"104.37.178.0/24",
|
||||||
|
"114.31.52.0/22",
|
||||||
|
"218.65.212.0/24",
|
||||||
|
"1.255.41.0/24",
|
||||||
|
"14.0.45.0/24",
|
||||||
|
"1.32.243.0/24",
|
||||||
|
"220.170.185.0/24",
|
||||||
|
"122.190.3.0/24",
|
||||||
|
"103.79.133.0/24",
|
||||||
|
"220.181.55.0/24",
|
||||||
|
"125.39.191.0/24",
|
||||||
|
"115.127.226.0/24",
|
||||||
|
"125.39.32.0/24",
|
||||||
|
"61.120.154.0/24",
|
||||||
|
"103.4.202.0/24",
|
||||||
|
"103.79.134.0/23",
|
||||||
|
"115.127.224.0/24",
|
||||||
|
"113.20.147.0/24",
|
||||||
|
"61.156.149.0/24",
|
||||||
|
"210.209.122.0/24",
|
||||||
|
"115.127.249.0/24",
|
||||||
|
"104.37.179.0/24",
|
||||||
|
"120.52.18.0/24",
|
||||||
|
"54.192.0.0/16",
|
||||||
|
"14.0.55.0/24",
|
||||||
|
"61.160.224.0/24",
|
||||||
|
"113.207.101.0/24",
|
||||||
|
"101.79.157.0/24",
|
||||||
|
"110.93.128.0/20",
|
||||||
|
"58.251.121.0/24",
|
||||||
|
"61.240.149.0/24",
|
||||||
|
"130.176.0.0/16",
|
||||||
|
"113.107.238.0/24",
|
||||||
|
"112.65.73.0/24",
|
||||||
|
"103.75.200.0/23",
|
||||||
|
"199.83.128.0/21",
|
||||||
|
"123.129.220.0/24",
|
||||||
|
"54.230.0.0/16",
|
||||||
|
"114.111.60.0/24",
|
||||||
|
"199.27.128.0/21",
|
||||||
|
"14.0.118.0/24",
|
||||||
|
"101.79.158.0/24",
|
||||||
|
"119.31.248.0/21",
|
||||||
|
"54.182.0.0/16",
|
||||||
|
"113.31.27.0/24",
|
||||||
|
"14.17.69.0/24",
|
||||||
|
"101.79.145.0/24",
|
||||||
|
"113.20.144.0/21",
|
||||||
|
"180.163.22.0/24",
|
||||||
|
"104.37.176.0/21",
|
||||||
|
"117.25.156.0/24",
|
||||||
|
"115.127.252.0/24",
|
||||||
|
"115.127.244.0/23",
|
||||||
|
"14.0.46.0/24",
|
||||||
|
"113.207.102.0/24",
|
||||||
|
"52.199.127.192/26",
|
||||||
|
"13.113.203.0/24",
|
||||||
|
"64.252.64.0/18",
|
||||||
|
"1.32.240.0/24",
|
||||||
|
"123.129.232.0/24",
|
||||||
|
"1.32.241.0/24",
|
||||||
|
"180.163.189.0/24",
|
||||||
|
"157.255.25.0/24",
|
||||||
|
"1.32.244.0/24",
|
||||||
|
"103.248.106.0/24",
|
||||||
|
"121.48.95.0/24",
|
||||||
|
"54.239.192.0/19",
|
||||||
|
"113.20.146.0/23",
|
||||||
|
"61.136.173.0/24",
|
||||||
|
"35.162.63.192/26",
|
||||||
|
"117.34.14.0/24",
|
||||||
|
"183.232.29.0/24",
|
||||||
|
"42.81.93.0/24",
|
||||||
|
"122.228.238.0/24",
|
||||||
|
"183.61.190.0/24",
|
||||||
|
"125.39.239.0/24",
|
||||||
|
"115.127.230.0/24",
|
||||||
|
"103.140.200.0/23",
|
||||||
|
"202.102.85.0/24",
|
||||||
|
"14.0.32.0/21",
|
||||||
|
"14.0.57.0/24",
|
||||||
|
"112.25.90.0/24",
|
||||||
|
"58.211.137.0/24",
|
||||||
|
"210.22.63.0/24",
|
||||||
|
"34.226.14.0/24",
|
||||||
|
"13.32.0.0/15",
|
||||||
|
"101.79.156.0/24",
|
||||||
|
"103.89.176.0/24",
|
||||||
|
"14.0.116.0/24",
|
||||||
|
"106.42.25.0/24",
|
||||||
|
"101.79.233.0/24",
|
||||||
|
"101.79.231.0/24",
|
||||||
|
"103.75.200.0/24",
|
||||||
|
"119.188.9.0/24",
|
||||||
|
"183.232.51.0/24",
|
||||||
|
"149.126.72.0/21",
|
||||||
|
"103.21.244.0/22",
|
||||||
|
"115.127.233.0/24",
|
||||||
|
"27.221.20.0/24",
|
||||||
|
"198.143.32.0/19",
|
||||||
|
"103.248.107.0/24",
|
||||||
|
"101.79.227.0/24",
|
||||||
|
"115.127.242.0/24",
|
||||||
|
"119.31.250.0/24",
|
||||||
|
"103.82.130.0/24",
|
||||||
|
"99.84.0.0/16",
|
||||||
|
"222.73.144.0/24",
|
||||||
|
"103.79.132.0/22",
|
||||||
|
"101.79.208.0/20",
|
||||||
|
"104.37.182.0/24",
|
||||||
|
"101.79.152.0/24",
|
||||||
|
"36.99.18.0/24",
|
||||||
|
"101.71.56.0/24",
|
||||||
|
"36.250.5.0/24",
|
||||||
|
"61.158.240.0/24",
|
||||||
|
"119.188.14.0/24",
|
||||||
|
"13.249.0.0/16",
|
||||||
|
"183.214.156.0/24",
|
||||||
|
"60.221.236.0/24",
|
||||||
|
"58.30.212.0/24",
|
||||||
|
"115.127.254.0/24",
|
||||||
|
"188.114.96.0/20",
|
||||||
|
"115.127.241.0/24",
|
||||||
|
"103.4.200.0/22",
|
||||||
|
"115.127.239.0/24",
|
||||||
|
"115.127.243.0/24",
|
||||||
|
"111.32.135.0/24",
|
||||||
|
"120.221.29.0/24",
|
||||||
|
"115.127.232.0/24",
|
||||||
|
"14.0.43.0/24",
|
||||||
|
"14.0.59.0/24",
|
||||||
|
"183.61.236.0/24",
|
||||||
|
"34.223.12.224/27",
|
||||||
|
"103.24.120.0/24",
|
||||||
|
"52.57.254.0/24",
|
||||||
|
"113.207.100.0/24",
|
||||||
|
"222.186.19.0/24",
|
||||||
|
"113.20.149.0/24",
|
||||||
|
"150.138.151.0/24",
|
||||||
|
"115.231.110.0/24",
|
||||||
|
"52.56.127.0/25",
|
||||||
|
"104.37.176.0/24",
|
||||||
|
"163.177.8.0/24",
|
||||||
|
"163.53.89.0/24",
|
||||||
|
"52.82.128.0/19",
|
||||||
|
"114.111.63.0/24",
|
||||||
|
"108.162.192.0/18",
|
||||||
|
"14.136.130.0/24",
|
||||||
|
"115.127.229.0/24",
|
||||||
|
"14.17.71.0/24",
|
||||||
|
"52.212.248.0/26",
|
||||||
|
"180.163.188.0/24",
|
||||||
|
"61.182.137.0/24",
|
||||||
|
"119.161.224.0/21",
|
||||||
|
"14.0.41.0/24",
|
||||||
|
"202.162.108.0/24",
|
||||||
|
"106.122.248.0/24",
|
||||||
|
"52.66.194.128/26",
|
||||||
|
"115.127.237.0/24",
|
||||||
|
"220.170.186.0/24",
|
||||||
|
"14.0.32.0/19",
|
||||||
|
"14.0.114.0/24",
|
||||||
|
"112.90.216.0/24",
|
||||||
|
"115.127.236.0/24",
|
||||||
|
"116.193.84.0/24",
|
||||||
|
"113.207.76.0/24",
|
||||||
|
"101.79.235.0/24",
|
||||||
|
"101.79.224.0/20",
|
||||||
|
"61.155.149.0/24",
|
||||||
|
"101.79.148.0/24",
|
||||||
|
"180.163.224.0/24",
|
||||||
|
"204.246.174.0/23",
|
||||||
|
"183.60.136.0/24",
|
||||||
|
"101.227.207.0/24",
|
||||||
|
"103.248.105.0/24",
|
||||||
|
"119.188.35.0/24",
|
||||||
|
"42.236.7.0/24",
|
||||||
|
"116.193.88.0/21",
|
||||||
|
"116.193.83.0/24",
|
||||||
|
"120.199.69.0/24",
|
||||||
|
"122.226.182.0/24",
|
||||||
|
"58.20.204.0/24",
|
||||||
|
"110.93.128.0/21",
|
||||||
|
"115.231.187.0/24",
|
||||||
|
"69.28.58.0/24",
|
||||||
|
"114.31.32.0/19",
|
||||||
|
"112.25.91.0/24",
|
||||||
|
"59.52.28.0/24",
|
||||||
|
"117.27.149.0/24",
|
||||||
|
"61.147.92.0/24",
|
||||||
|
"14.0.117.0/24",
|
||||||
|
"14.0.40.0/24",
|
||||||
|
"119.97.151.0/24",
|
||||||
|
"103.199.228.0/22",
|
||||||
|
"122.70.134.0/24",
|
||||||
|
"115.127.244.0/24",
|
||||||
|
"223.112.198.0/24",
|
||||||
|
"115.127.225.0/24",
|
||||||
|
"104.16.0.0/12",
|
||||||
|
"121.12.98.0/24",
|
||||||
|
"103.31.4.0/22",
|
||||||
|
"204.246.164.0/22",
|
||||||
|
"223.94.66.0/24",
|
||||||
|
"35.167.191.128/26",
|
||||||
|
"116.31.127.0/24",
|
||||||
|
"101.79.226.0/24",
|
||||||
|
"34.195.252.0/24",
|
||||||
|
"115.127.247.0/24",
|
||||||
|
"61.240.144.0/24",
|
||||||
|
"108.175.32.0/20",
|
||||||
|
"120.197.85.0/24",
|
||||||
|
"183.232.53.0/24",
|
||||||
|
"111.161.66.0/24",
|
||||||
|
"117.34.28.0/24",
|
||||||
|
"45.64.64.0/22",
|
||||||
|
"14.0.44.0/24",
|
||||||
|
"109.86.0.0/15",
|
||||||
|
"182.23.211.0/24",
|
||||||
|
"58.211.2.0/24",
|
||||||
|
"119.36.164.0/24",
|
||||||
|
"116.55.250.0/24",
|
||||||
|
"101.227.163.0/24",
|
||||||
|
"13.228.69.0/24",
|
||||||
|
"120.221.136.0/24",
|
||||||
|
"119.188.132.0/24",
|
||||||
|
"115.127.235.0/24",
|
||||||
|
"42.236.6.0/24",
|
||||||
|
"125.88.190.0/24",
|
||||||
|
"61.54.47.0/24",
|
||||||
|
"103.27.12.0/22",
|
||||||
|
"116.193.80.0/21",
|
||||||
|
"101.79.159.0/24",
|
||||||
|
"123.155.158.0/24",
|
||||||
|
"111.47.226.0/24",
|
||||||
|
"131.0.72.0/22",
|
||||||
|
"192.230.64.0/18"
|
||||||
|
]
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
import json
|
||||||
|
import ipaddress
|
||||||
|
|
||||||
|
from config import setting
|
||||||
|
from common import utils
|
||||||
|
from config.log import logger
|
||||||
|
|
||||||
|
data_dir = setting.data_storage_dir
|
||||||
|
|
||||||
|
# from https://github.com/al0ne/Vxscan/blob/master/lib/iscdn.py
|
||||||
|
cdn_ip_cidr = utils.load_json(data_dir.joinpath('cdn_ip_cidr.json'))
|
||||||
|
cdn_asn_list = utils.load_json(data_dir.joinpath('cdn_asn_list.json'))
|
||||||
|
|
||||||
|
# from https://github.com/Qclover/CDNCheck/blob/master/checkCDN/cdn3_check.py
|
||||||
|
cdn_cname_keyword = utils.load_json(data_dir.joinpath('cdn_cname_keywords.json'))
|
||||||
|
|
||||||
|
cdn_header_key = utils.load_json(data_dir.joinpath('cdn_header_keys.json'))
|
||||||
|
|
||||||
|
|
||||||
|
def check_cname_count(cnames):
|
||||||
|
if len(cnames) > 1:
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def check_cname_keyword(cname):
|
||||||
|
for keyword in cdn_cname_keyword.keys():
|
||||||
|
if keyword in cname:
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def check_header_key(header):
|
||||||
|
for key in cdn_header_key:
|
||||||
|
if key in header:
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def check_cdn_cidr(ip):
|
||||||
|
ip = ipaddress.ip_address(ip)
|
||||||
|
for cidr in cdn_ip_cidr:
|
||||||
|
if ip in ipaddress.ip_network(cidr):
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def check_cdn_asn(asn):
|
||||||
|
if str(asn) in cdn_asn_list:
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def check_cdn(data):
|
||||||
|
for index, item in enumerate(data):
|
||||||
|
cname = item.get('cname')
|
||||||
|
if cname:
|
||||||
|
cnames = cname.split(',')
|
||||||
|
if check_cname_count(cnames):
|
||||||
|
data[index]['cdn'] = 1
|
||||||
|
continue
|
||||||
|
if check_cname_keyword(cname):
|
||||||
|
data[index]['cdn'] = 1
|
||||||
|
continue
|
||||||
|
header = item.get('header')
|
||||||
|
if header:
|
||||||
|
header = json.loads(header)
|
||||||
|
if check_header_key(header):
|
||||||
|
data[index]['cdn'] = 1
|
||||||
|
continue
|
||||||
|
ip = item.get('content')
|
||||||
|
if ip:
|
||||||
|
if check_cdn_cidr(ip):
|
||||||
|
data[index]['cdn'] = 1
|
||||||
|
continue
|
||||||
|
asn = item.get('asn')
|
||||||
|
if asn:
|
||||||
|
asn = asn[2:] # 去除AS
|
||||||
|
if check_cdn_asn(asn):
|
||||||
|
data[index]['cdn'] = 1
|
||||||
|
continue
|
||||||
|
data[index]['cdn'] = 0
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
def save_db(name, data):
|
||||||
|
logger.log('INFOR', f'Saving cdn check results')
|
||||||
|
utils.save_db(name, data, 'cdn')
|
||||||
@@ -18,6 +18,7 @@ from common import utils, resolve, request
|
|||||||
from common.database import Database
|
from common.database import Database
|
||||||
from modules.collect import Collect
|
from modules.collect import Collect
|
||||||
from modules.finder import Finder
|
from modules.finder import Finder
|
||||||
|
from modules import iscdn
|
||||||
from config import setting
|
from config import setting
|
||||||
from config.log import logger
|
from config.log import logger
|
||||||
from takeover import Takeover
|
from takeover import Takeover
|
||||||
@@ -215,6 +216,10 @@ class OneForAll(object):
|
|||||||
finder = Finder()
|
finder = Finder()
|
||||||
self.data = finder.run(self.domain, self.data, self.port)
|
self.data = finder.run(self.domain, self.data, self.port)
|
||||||
|
|
||||||
|
# check cdn
|
||||||
|
self.data = iscdn.check_cdn(self.data)
|
||||||
|
iscdn.save_db(self.domain, self.data)
|
||||||
|
|
||||||
# Add the final result list to the total data list
|
# Add the final result list to the total data list
|
||||||
self.datas.extend(self.data)
|
self.datas.extend(self.data)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user