diff --git a/Common/Flag.go b/Common/Flag.go index 490b8c4..fca0878 100644 --- a/Common/Flag.go +++ b/Common/Flag.go @@ -3,9 +3,10 @@ package Common import ( "flag" "fmt" - "github.com/fatih/color" "os" "strings" + + "github.com/fatih/color" ) func Banner() { @@ -65,6 +66,7 @@ func Flag(Info *HostInfo) { flag.StringVar(&Info.Host, "h", "", GetText("flag_host")) flag.StringVar(&ExcludeHosts, "eh", "", GetText("flag_exclude_hosts")) flag.StringVar(&Ports, "p", MainPorts, GetText("flag_ports")) + flag.StringVar(&ExcludePorts, "ep", "", GetText("flag_exclude_ports")) flag.StringVar(&HostsFile, "hf", "", GetText("flag_hosts_file")) flag.StringVar(&PortsFile, "pf", "", GetText("flag_ports_file")) diff --git a/Common/Parse.go b/Common/Parse.go index 55de128..fbe8065 100644 --- a/Common/Parse.go +++ b/Common/Parse.go @@ -275,6 +275,16 @@ func parsePorts() error { return nil } +// parseExcludePorts 解析排除端口配置 +// 更新全局排除端口配置 +func parseExcludePorts() { + if ExcludePorts != "" { + LogInfo(GetText("exclude_ports", ExcludePorts)) + // 确保排除端口被正确设置到全局配置中 + // 这将由PortScan函数在处理端口时使用 + } +} + // ReadFileLines 读取文件内容并返回非空行的切片 // 通用的文件读取函数,处理文件打开、读取和错误报告 func ReadFileLines(filename string) ([]string, error) { @@ -321,6 +331,9 @@ func ParseInput(Info *HostInfo) error { // 处理端口配置组合 processPortsConfig() + // 处理排除端口配置 + parseExcludePorts() + // 处理额外用户名和密码 processExtraCredentials() @@ -381,6 +394,11 @@ func processPortsConfig() { } LogInfo(GetText("extra_ports", AddPorts)) } + + // 确保排除端口配置被记录 + if ExcludePorts != "" { + LogInfo(GetText("exclude_ports_applied", ExcludePorts)) + } } // processExtraCredentials 处理额外的用户名和密码