diff --git a/bk/backtrace.go b/bk/backtrace.go index 79f33e6..c310900 100644 --- a/bk/backtrace.go +++ b/bk/backtrace.go @@ -5,31 +5,31 @@ import ( "time" ) -func BackTrace() { - // 获取IP地址数量 - ipCount := len(ipv4s) - var ( - s = make([]string, ipCount) // 动态分配切片大小 - c = make(chan Result) - t = time.After(time.Second * 10) - ) - for i := range ipv4s { - go trace(c, i) - } - -loop: - for range s { - select { - case o := <-c: - s[o.i] = o.s - case <-t: - break loop - } - } - - for _, r := range s { - if r != "" { - fmt.Println(r) - } - } +func BackTrace(test bool) { + if !test { + // 获取IP地址数量 + ipCount := len(ipv4s) + var ( + s = make([]string, ipCount) // 动态分配切片大小 + c = make(chan Result) + t = time.After(time.Second * 10) + ) + for i := range ipv4s { + go trace(c, i) + } + loop: + for range s { + select { + case o := <-c: + s[o.i] = o.s + case <-t: + break loop + } + } + for _, r := range s { + if r != "" { + fmt.Println(r) + } + } + } } diff --git a/bk/backtrace_test.go b/bk/backtrace_test.go index a634aa9..77cbb01 100644 --- a/bk/backtrace_test.go +++ b/bk/backtrace_test.go @@ -16,5 +16,5 @@ import ( //} func TestBackTrace(t *testing.T) { - BackTrace() + BackTrace(false) } diff --git a/cmd/main.go b/cmd/main.go index e2811f7..929f1cb 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -25,12 +25,13 @@ func main() { http.Get("https://hits.spiritlhl.net/backtrace.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false") }() fmt.Println(Green("项目地址:"), Yellow("https://github.com/oneclickvirt/backtrace")) - var showVersion, showIpInfo, help bool + var showVersion, showIpInfo, help, test bool backtraceFlag := flag.NewFlagSet("backtrace", flag.ContinueOnError) backtraceFlag.BoolVar(&help, "h", false, "Show help information") backtraceFlag.BoolVar(&showVersion, "v", false, "Show version") backtraceFlag.BoolVar(&showIpInfo, "s", true, "Disabe show ip info") backtraceFlag.BoolVar(&backtrace.EnableLoger, "e", false, "Enable logging") + backtraceFlag.BoolVar(&test, "test", false, "Test Mode") backtraceFlag.Parse(os.Args[1:]) if help { fmt.Printf("Usage: %s [options]\n", os.Args[0]) @@ -56,7 +57,7 @@ func main() { } } } - backtrace.BackTrace() + backtrace.BackTrace(test) fmt.Println(Yellow("准确线路自行查看详细路由,本测试结果仅作参考")) fmt.Println(Yellow("同一目标地址多个线路时,可能检测已越过汇聚层,除了第一个线路外,后续信息可能无效")) if runtime.GOOS == "windows" || runtime.GOOS == "darwin" {