mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 05:56:46 +08:00

- 重命名 Common -> common,WebScan -> webscan,遵循 Go 包命名约定 - 修复模块路径大小写不匹配导致的编译错误 - 清理依赖项,优化 go.mod 文件 - 添加 Docker 测试环境配置文件 - 新增镜像拉取脚本以处理网络超时问题 - 成功编译生成 fscan v2.2.1 可执行文件 该修复解决了 Linux 系统下包名大小写敏感导致的模块解析失败问题。
86 lines
2.3 KiB
Go
86 lines
2.3 KiB
Go
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()
|
|
}
|