1.修改默认情况下获取进程数和协程数方式

2.更新依赖
This commit is contained in:
Jing Ling
2020-03-12 21:30:44 +08:00
parent 598f91c6f7
commit 6431ede868
7 changed files with 74 additions and 19 deletions
+2 -2
View File
@@ -195,8 +195,8 @@ async def run_aio_resolve(subdomain_list):
:param list subdomain_list: 待解析的子域列表
:return: 解析得到的结果列表
"""
process_num = config.brute_process_num
coroutine_num = config.brute_coroutine_num
process_num = utils.get_process_num()
coroutine_num = utils.get_coroutine_num()
logger.log('INFOR', '正在异步查询子域的A记录')
result_list = await aio_resolve(subdomain_list, process_num, coroutine_num)
logger.log('INFOR', '完成异步查询子域的A记录')
+35
View File
@@ -1,3 +1,4 @@
import os
import re
import sys
import time
@@ -5,6 +6,8 @@ import random
import platform
from ipaddress import IPv4Address, ip_address
import psutil
import config
from pathlib import Path
from records import Record, RecordCollection
@@ -399,3 +402,35 @@ def check_ip_public(ip_list):
if not ip.is_global:
return 0
return 1
def get_process_num():
process_num = config.brute_process_num
if isinstance(process_num, int):
return max(1, process_num)
else:
return os.cpu_count()
def get_coroutine_num():
coroutine_num = config.brute_coroutine_num
if isinstance(coroutine_num, int):
return max(64, coroutine_num)
elif coroutine_num is None:
mem = psutil.virtual_memory()
total_mem = mem.total
g_size = 1024 * 1024 * 1024
if total_mem <= 1 * g_size:
return 64
elif total_mem <= 2 * g_size:
return 128
elif total_mem <= 4 * g_size:
return 256
elif total_mem <= 8 * g_size:
return 512
elif total_mem <= 16 * g_size:
return 1024
else:
return 2048
else:
return 64