Documentation
¶
Overview ¶
- Package console @Author: zhizhuo @IDE:GoLand @File: console.go @Date: 2025/3/20 下午2:11*
Index ¶
- func Close() error
- func CloseFileOutput() error
- func CloseSockOutput() error
- func CreateProgressBar(total int) *progressbar.ProgressBar
- func GetOutputFormat(jsonOutput bool, outputPath string) string
- func HandleMatchResults(targetResult *TargetResult, output string, sockOutput string, ...)
- func InitOutput(outputPath, format string) error
- func InitSockOutput(sockPath string) error
- func PrintSummaryCounts(total, matched, unmatched int)
- func WriteFingerprints(opts *WriteOptions) error
- func WriteHeader(format string) error
- func WriteResultToFile(targetResult *TargetResult, outputs, format string, ...)
- func WriteResultToSock(targetResult *TargetResult, lastResponse *proto.Response)
- func WriteToSock(opts *WriteOptions) error
- type FingerMatch
- type JSONOutput
- type TargetResult
- type WriteOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CloseFileOutput ¶
func CloseFileOutput() error
CloseFileOutput 关闭仅文件输出资源。 关闭顺序:先 drain 异步队列 -> 再 Flush CSV writer -> 再关闭文件句柄, 保证 writer goroutine 不会写到已关闭的 FD。
func CreateProgressBar ¶
func CreateProgressBar(total int) *progressbar.ProgressBar
CreateProgressBar 创建对小窗口友好的单行进度条(委托 utils/progress)。
func GetOutputFormat ¶
GetOutputFormat 确定输出格式
func HandleMatchResults ¶
func HandleMatchResults(targetResult *TargetResult, output string, sockOutput string, printResult func(string), outputFormat string, lastResponse *proto.Response)
HandleMatchResults 处理匹配结果并输出到控制台
func InitOutput ¶
InitOutput 初始化输出文件并启动异步写入器。 异步写入器把 URL 工作池的"格式化 + 落盘"动作从同步路径剥离, 消除高并发下抢占全局 mu 锁的串行瓶颈。
func PrintSummaryCounts ¶
func PrintSummaryCounts(total, matched, unmatched int)
PrintSummaryCounts 输出聚合计数,不要求调用方保留全部扫描结果。
func WriteFingerprints ¶
func WriteFingerprints(opts *WriteOptions) error
WriteFingerprints 使用结构体选项写入指纹组合结果
func WriteResultToFile ¶
func WriteResultToFile(targetResult *TargetResult, outputs, format string, lastResponse *proto.Response)
WriteResultToFile 将结果写入文件。 优先走异步队列以解放 URL 工作池;队列满时退回同步写入,保证不丢数据。
func WriteResultToSock ¶
func WriteResultToSock(targetResult *TargetResult, lastResponse *proto.Response)
WriteResultToSock 将结果写入socket文件
Types ¶
type FingerMatch ¶
type FingerMatch struct {
Finger *finger.Finger // 指纹信息
Result bool // 识别结果
Request *proto.Request // 请求数据
Response *proto.Response // 响应数据
}
FingerMatch 存储每个匹配的指纹信息
type JSONOutput ¶
type JSONOutput struct {
URL string `json:"url"`
StatusCode int32 `json:"status_code"`
Title string `json:"title"`
Server string `json:"server"`
FingerIDs []string `json:"finger_ids,omitempty"`
FingerNames []string `json:"finger_names,omitempty"`
Headers string `json:"headers,omitempty"`
Wappalyzer *wappalyzer.TypeWappalyzer `json:"wappalyzer,omitempty"`
MatchResult bool `json:"match_result"`
Remark string `json:"remark,omitempty"`
ICP string `json:"icp,omitempty"`
Certs []*types.CertInfo `json:"certs,omitempty"`
}
JSONOutput JSON格式输出结构体
type TargetResult ¶
type TargetResult struct {
URL string // 目标地址
StatusCode int32 // 状态码
Title string // 站点标题
ServerInfo *types.ServerInfo // server信息
Fingers []*finger.Finger // 匹配的指纹列表
Matches []*FingerMatch // 匹配详细信息
Wappalyzer *wappalyzer.TypeWappalyzer // 站点信息数据
ICP string // ICP 备案号
Certs []*types.CertInfo // 证书信息
}
TargetResult 存储每个目标的扫描结果
type WriteOptions ¶
type WriteOptions struct {
Output string // 输出文件路径
Format string // 输出格式(csv/txt/json)
Target string // 目标URL
Fingers []*finger.Finger // 指纹列表
StatusCode int32 // 状态码
Title string // 页面标题
ServerInfo *types.ServerInfo // 服务器信息
RespHeaders string // 响应头
Response *proto.Response // 完整响应对象(可选)
Wappalyzer *wappalyzer.TypeWappalyzer // 站点使用技术
FinalResult bool // 最终匹配结果
Remark string // 备注(可选)
ICP string // ICP 备案号(可选)
Certs []*types.CertInfo // 证书信息(可选)
}
WriteOptions 定义写入选项结构体,用于传递写入参数
func CreateWriteOptions ¶
func CreateWriteOptions(targetResult *TargetResult, outputPath string, format string, lastResponse *proto.Response) *WriteOptions
CreateWriteOptions 创建通用的写入选项结构体
Click to show internal directories.
Click to hide internal directories.