package common /* types.go - 核心数据结构 保留真正使用的数据结构,去掉无用的插件管理器。 */ // HostInfo 主机信息结构 - 最核心的数据结构 type HostInfo struct { Host string // 主机地址 Ports string // 端口范围 Url string // URL地址 Infostr []string // 附加信息 } // ScanPlugin 扫描插件结构 - 简化版 type ScanPlugin struct { Name string // 插件名称 Version string // 插件版本 Description string // 插件描述 Author string // 插件作者 Ports []int // 适用端口 Types []string // 插件类型标签,一个插件可以有多个类型 Priority int // 插件优先级(数字越小优先级越高) Enabled bool // 是否启用 ScanFunc func(*HostInfo) error // 扫描函数 } // HasType 检查插件是否具有指定类型 func (p *ScanPlugin) HasType(typeName string) bool { for _, t := range p.Types { if t == typeName { return true } } return false } // 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 }