package base import ( "sync" "github.com/shadow1ng/fscan/common/config" ) // ============================================================================= // 全局配置变量 // ============================================================================= var ( // 核心扫描配置 ScanMode string // 扫描模式 ThreadNum int // 线程数 Timeout int64 // 超时时间 DisablePing bool // 禁用ping LocalMode bool // 本地模式 LocalPlugin string // 本地插件选择 // 基础认证配置 Username string // 用户名 Password string // 密码 Userdict map[string][]string // 用户字典 Passwords []string // 密码列表 // 网络配置 HttpProxy string // HTTP代理 Socks5Proxy string // SOCKS5代理 // 显示控制 NoColor bool // 禁用颜色 Language string // 语言 LogLevel string // 日志级别 // 端口映射 PortMap map[int][]string // 端口映射 DefaultMap []string // 默认映射 // 初始化锁 initOnce sync.Once ) // ============================================================================= // 简化的初始化函数 // ============================================================================= // InitGlobalConfig 初始化全局配置 func InitGlobalConfig() { initOnce.Do(func() { // 设置默认值 ScanMode = DefaultScanMode ThreadNum = DefaultThreadNum Timeout = DefaultTimeout LogLevel = DefaultLogLevel Language = DefaultLanguage // 初始化映射和切片 Userdict = make(map[string][]string) PortMap = make(map[int][]string) DefaultMap = make([]string, 0) // 从config模块获取字典和映射 if serviceDict := config.GetGlobalServiceDict(); serviceDict != nil { Userdict = serviceDict.GetAllUserDicts() Passwords = serviceDict.GetPasswords() } if probeMapping := config.GetGlobalProbeMapping(); probeMapping != nil { PortMap = probeMapping.GetAllPortMappings() DefaultMap = probeMapping.GetDefaultProbes() } }) } // ============================================================================= // 访问器函数已移除(未使用的死代码) // 直接使用全局变量进行访问 // ============================================================================= // init 自动初始化 func init() { InitGlobalConfig() }