refactor: 端口支持改为列表

This commit is contained in:
ZacharyZcR
2024-12-20 18:38:13 +08:00
parent 8f1c5dbae9
commit 375a1e4673
4 changed files with 73 additions and 57 deletions
+17 -1
View File
@@ -11,10 +11,26 @@ type HostInfo struct {
// ScanPlugin 定义扫描插件的结构
type ScanPlugin struct {
Name string // 插件名称
Port int // 关联的端口号,0表示特殊扫描类型
Ports []int // 关联的端口列表,空切片表示特殊扫描类型
ScanFunc func(*HostInfo) error // 扫描函数
}
// HasPort 检查插件是否支持指定端口
func (p *ScanPlugin) HasPort(port int) bool {
// 如果没有指定端口列表,表示支持所有端口
if len(p.Ports) == 0 {
return true
}
// 检查端口是否在支持列表中
for _, supportedPort := range p.Ports {
if port == supportedPort {
return true
}
}
return false
}
// PluginManager 管理插件注册
var PluginManager = make(map[string]ScanPlugin)