diff --git a/main.go b/main.go index d5d98e2..f5db39f 100644 --- a/main.go +++ b/main.go @@ -22,13 +22,36 @@ func main() { var info common.HostInfo common.Flag(&info) - // 检查-local与-h -u的互斥性 - if common.LocalPlugin != "" && info.Host != "" { - fmt.Printf("错误: -local参数与-h参数互斥,本地插件只能在本机运行\n") - os.Exit(1) + // 检查核心参数的互斥性:-h、-u、-local 只能指定一个 + paramCount := 0 + var activeParam string + + if info.Host != "" { + paramCount++ + activeParam = "-h" } - if common.LocalPlugin != "" && common.TargetURL != "" { - fmt.Printf("错误: -local参数与-u参数互斥,本地插件不需要URL目标\n") + if common.TargetURL != "" { + paramCount++ + if activeParam != "" { + activeParam += " 和 -u" + } else { + activeParam = "-u" + } + } + if common.LocalPlugin != "" { + paramCount++ + if activeParam != "" { + activeParam += " 和 -local" + } else { + activeParam = "-local" + } + } + + if paramCount > 1 { + fmt.Printf("错误: 参数 %s 互斥,请只指定一个扫描目标\n", activeParam) + fmt.Printf(" -h: 网络主机扫描\n") + fmt.Printf(" -u: Web URL扫描\n") + fmt.Printf(" -local: 本地信息收集\n") os.Exit(1) }