添加函数说明

This commit is contained in:
Jing Ling
2020-02-09 19:00:04 +08:00
parent a5f51aaefc
commit 1cd2082e71
2 changed files with 34 additions and 13 deletions
+15 -12
View File
@@ -33,13 +33,13 @@ class Module(object):
self.records = dict() # 存放子域解析记录
self.results = list() # 存放模块结果
self.start = time.time() # 模块开始执行时间
self.end = None
self.end = None # 模块结束执行时间
self.elapsed = None # 模块执行耗时
def check(self, *apis):
"""
简单检查是否配置了api信息
:param apis: api信息元组
:return: 检查结果
"""
@@ -221,7 +221,7 @@ class Module(object):
"""
将各模块结果保存为json文件
:return 保存与否
:return 是否保存成功
"""
if not config.save_module_result:
return False
@@ -242,8 +242,10 @@ class Module(object):
return True
def gen_result(self):
results = list()
if not len(self.subdomains): # 一个子域都没有发现的情况
"""
生成结果
"""
if not len(self.subdomains): # 该模块一个子域都没有发现的情况
result = {'id': None,
'url': None,
'subdomain': None,
@@ -261,8 +263,7 @@ class Module(object):
'source': self.source,
'elapsed': self.elapsed,
'count': 0}
results.append(result)
self.results = (self.source, results)
self.results.append(result)
else:
for subdomain in self.subdomains:
url = 'http://' + subdomain
@@ -284,15 +285,17 @@ class Module(object):
'source': self.source,
'elapsed': self.elapsed,
'count': len(self.subdomains)}
results.append(result)
self.results = (self.source, results)
self.results.append(result)
def save_db(self):
"""
将模块结果存入数据库中
:return:
"""
lock.acquire()
db = Database()
db.create_table(self.domain)
source, results = self.results
# 将结果存入数据库中
db.save_db(self.domain, results, source)
db.save_db(self.domain, self.results, self.source)
db.close()
lock.release()
+19 -1
View File
@@ -1,5 +1,6 @@
# coding=utf-8
import re
import sys
import time
import random
import ipaddress
@@ -218,6 +219,13 @@ def save_data(path, data):
def check_response(method, resp):
"""
检查响应 输出非正常响应返回json的信息
:param method: 请求方法
:param resp: 响应体
:return: 是否正常响应
"""
if resp.status_code == 200 and resp.content:
return True
logger.log('ALERT', f'{method} {resp.url} {resp.status_code} - '
@@ -266,15 +274,21 @@ def remove_string(string):
def check_value(values):
for i, value in enumerate(values):
# Excel文件中单元格值长度不能超过32767
if value is None:
continue
if isinstance(value, str) and len(value) > 32767:
# Excel文件中单元格值长度不能超过32767
values[i] = value[:32767]
return values
def export_all(format, datas):
"""
将所有结果数据导出到一个文件
:param format: 导出文件的格式
:param datas: 待导出的结果数据
"""
format = check_format(format, len(datas))
dpath = check_dpath()
timestamp = get_timestamp()
@@ -303,3 +317,7 @@ def get_timestamp():
def get_classname(clsobj):
return clsobj.__class__.__name__
def python_version():
return sys.version