mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 14:06:44 +08:00

- 简化进度条定位逻辑,移除复杂的光标定位操作 - 优化LogWithProgress协调机制,确保日志与进度条正确交互 - 修复ANSI转义序列被直接输出的问题 - 进度条现在能够在底部原地更新,不再与日志输出争抢显示空间
169 lines
4.6 KiB
Go
169 lines
4.6 KiB
Go
package common
|
||
|
||
import (
|
||
"sync"
|
||
"time"
|
||
|
||
"github.com/schollz/progressbar/v3"
|
||
"github.com/shadow1ng/fscan/common/core"
|
||
"github.com/shadow1ng/fscan/common/logging"
|
||
)
|
||
|
||
/*
|
||
globals.go - 全局变量定义
|
||
|
||
直接导出core模块的变量,避免兼容层重定向。
|
||
这些变量被Flag.go和其他模块直接使用。
|
||
*/
|
||
|
||
// =============================================================================
|
||
// 版本信息
|
||
// =============================================================================
|
||
|
||
var version = "2.0.2"
|
||
|
||
// =============================================================================
|
||
// 核心扫描配置 - 直接使用core包变量
|
||
// =============================================================================
|
||
|
||
var (
|
||
ScanMode string // 扫描模式
|
||
ThreadNum int // 线程数
|
||
Timeout int64 // 超时时间
|
||
DisablePing bool // 禁用ping
|
||
LocalMode bool // 本地模式
|
||
)
|
||
|
||
// =============================================================================
|
||
// 基础认证配置 - 直接定义
|
||
// =============================================================================
|
||
|
||
var (
|
||
Username string // 用户名
|
||
Password string // 密码
|
||
Userdict map[string][]string // 用户字典
|
||
Passwords []string // 密码列表
|
||
)
|
||
|
||
// =============================================================================
|
||
// 网络配置 - 直接定义
|
||
// =============================================================================
|
||
|
||
var (
|
||
HttpProxy string // HTTP代理
|
||
Socks5Proxy string // SOCKS5代理
|
||
)
|
||
|
||
// =============================================================================
|
||
// 显示控制 - 直接定义
|
||
// =============================================================================
|
||
|
||
var (
|
||
NoColor bool // 禁用颜色
|
||
Language string // 语言
|
||
LogLevel string // 日志级别
|
||
)
|
||
|
||
// =============================================================================
|
||
// 端口映射 - 直接定义
|
||
// =============================================================================
|
||
|
||
var (
|
||
PortMap map[int][]string // 端口映射
|
||
DefaultMap []string // 默认映射
|
||
)
|
||
|
||
// =============================================================================
|
||
// 其他全局变量 - 直接定义,避免多层引用
|
||
// =============================================================================
|
||
|
||
var (
|
||
// 输出配置
|
||
Outputfile string
|
||
OutputFormat string
|
||
ProgressBar *progressbar.ProgressBar
|
||
OutputMutex sync.Mutex
|
||
|
||
// 日志状态
|
||
status = logging.NewScanStatus()
|
||
Num, End int64
|
||
StartTime = time.Now()
|
||
|
||
// 其他变量按需添加
|
||
)
|
||
|
||
// =============================================================================
|
||
// 日志级别常量
|
||
// =============================================================================
|
||
|
||
const (
|
||
LogLevelAll = string(logging.LevelAll)
|
||
LogLevelError = string(logging.LevelError)
|
||
LogLevelBase = string(logging.LevelBase)
|
||
LogLevelInfo = string(logging.LevelInfo)
|
||
LogLevelSuccess = string(logging.LevelSuccess)
|
||
LogLevelDebug = string(logging.LevelDebug)
|
||
LogLevelInfoSuccess = string(logging.LevelInfoSuccess)
|
||
LogLevelBaseInfoSuccess = string(logging.LevelBaseInfoSuccess)
|
||
)
|
||
|
||
// =============================================================================
|
||
// 初始化和同步函数
|
||
// =============================================================================
|
||
|
||
func init() {
|
||
// 初始化核心配置
|
||
core.InitGlobalConfig()
|
||
|
||
// 同步变量
|
||
syncWithCore()
|
||
}
|
||
|
||
// syncWithCore 同步common包变量与core包变量
|
||
func syncWithCore() {
|
||
// 读取core包的默认值
|
||
ScanMode = core.ScanMode
|
||
ThreadNum = core.ThreadNum
|
||
Timeout = core.Timeout
|
||
DisablePing = core.DisablePing
|
||
LocalMode = core.LocalMode
|
||
|
||
Username = core.Username
|
||
Password = core.Password
|
||
Userdict = core.Userdict
|
||
Passwords = core.Passwords
|
||
|
||
HttpProxy = core.HttpProxy
|
||
Socks5Proxy = core.Socks5Proxy
|
||
|
||
NoColor = core.NoColor
|
||
Language = core.Language
|
||
LogLevel = core.LogLevel
|
||
|
||
PortMap = core.PortMap
|
||
DefaultMap = core.DefaultMap
|
||
}
|
||
|
||
// syncToCore 将common包变量同步回core包
|
||
func syncToCore() {
|
||
core.ScanMode = ScanMode
|
||
core.ThreadNum = ThreadNum
|
||
core.Timeout = Timeout
|
||
core.DisablePing = DisablePing
|
||
core.LocalMode = LocalMode
|
||
|
||
core.Username = Username
|
||
core.Password = Password
|
||
core.Userdict = Userdict
|
||
core.Passwords = Passwords
|
||
|
||
core.HttpProxy = HttpProxy
|
||
core.Socks5Proxy = Socks5Proxy
|
||
|
||
core.NoColor = NoColor
|
||
core.Language = Language
|
||
core.LogLevel = LogLevel
|
||
|
||
core.PortMap = PortMap
|
||
core.DefaultMap = DefaultMap
|
||
} |