70 lines
1.5 KiB
Python
70 lines
1.5 KiB
Python
# -*- coding: UTF-8 -*-
|
|
'''
|
|
@Project :domainScanDemo
|
|
@File :base.py
|
|
@IDE :PyCharm
|
|
@Author :梦伴
|
|
@Date :2026/4/8 23:55
|
|
@explain : 基础检测类
|
|
'''
|
|
|
|
from abc import ABC, abstractmethod
|
|
from loguru import logger
|
|
|
|
|
|
class BaseDetector(ABC):
|
|
"""
|
|
基础检测类
|
|
"""
|
|
|
|
def __init__(self):
|
|
"""
|
|
初始化检测类
|
|
"""
|
|
self.name = self.__class__.__name__
|
|
logger.info(f"初始化检测器: {self.name}")
|
|
|
|
@abstractmethod
|
|
def check_domain(self, domain):
|
|
"""
|
|
检测域名
|
|
|
|
:param domain: 域名
|
|
:return: dict - 检测结果
|
|
"""
|
|
pass
|
|
|
|
def _log_info(self, message):
|
|
"""
|
|
记录信息日志
|
|
|
|
:param message: 消息
|
|
"""
|
|
logger.info(f"[{self.name}] {message}")
|
|
|
|
def _log_warning(self, message):
|
|
"""
|
|
记录警告日志
|
|
|
|
:param message: 消息
|
|
"""
|
|
logger.warning(f"[{self.name}] {message}")
|
|
|
|
def _log_error(self, message):
|
|
"""
|
|
记录错误日志
|
|
|
|
:param message: 消息
|
|
"""
|
|
logger.error(f"[{self.name}] {message}")
|
|
|
|
def _handle_exception(self, e, domain):
|
|
"""
|
|
处理异常
|
|
|
|
:param e: 异常
|
|
:param domain: 域名
|
|
:return: dict - 错误结果
|
|
"""
|
|
self._log_error(f"检测域名 {domain} 出错: {e}")
|
|
return {'error': str(e)} |