mirror of
https://github.com/oneclickvirt/backtrace.git
synced 2025-04-22 04:02:07 +08:00
feat: 添加测试模式,方便开发调试
This commit is contained in:
parent
1a985cfbbe
commit
c9c62e86f3
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -16,5 +16,5 @@ import (
|
||||
//}
|
||||
|
||||
func TestBackTrace(t *testing.T) {
|
||||
BackTrace()
|
||||
BackTrace(false)
|
||||
}
|
||||
|
@ -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" {
|
||||
|
Loading…
Reference in New Issue
Block a user