mirror of
https://github.com/oneclickvirt/backtrace.git
synced 2025-08-28 18:20:38 +08:00
fix: 修复IP指定问题
This commit is contained in:
parent
6f679f403f
commit
9737562e39
19
cmd/main.go
19
cmd/main.go
@ -1,5 +1,4 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"flag"
|
"flag"
|
||||||
@ -8,14 +7,12 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"runtime"
|
"runtime"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/oneclickvirt/backtrace/bgptools"
|
"github.com/oneclickvirt/backtrace/bgptools"
|
||||||
backtrace "github.com/oneclickvirt/backtrace/bk"
|
backtrace "github.com/oneclickvirt/backtrace/bk"
|
||||||
"github.com/oneclickvirt/backtrace/model"
|
"github.com/oneclickvirt/backtrace/model"
|
||||||
"github.com/oneclickvirt/backtrace/utils"
|
"github.com/oneclickvirt/backtrace/utils"
|
||||||
. "github.com/oneclickvirt/defaultset"
|
. "github.com/oneclickvirt/defaultset"
|
||||||
)
|
)
|
||||||
|
|
||||||
type IpInfo struct {
|
type IpInfo struct {
|
||||||
Ip string `json:"ip"`
|
Ip string `json:"ip"`
|
||||||
City string `json:"city"`
|
City string `json:"city"`
|
||||||
@ -23,19 +20,20 @@ type IpInfo struct {
|
|||||||
Country string `json:"country"`
|
Country string `json:"country"`
|
||||||
Org string `json:"org"`
|
Org string `json:"org"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
go func() {
|
go func() {
|
||||||
http.Get("https://hits.spiritlhl.net/backtrace.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false")
|
http.Get("https://hits.spiritlhl.net/backtrace.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false")
|
||||||
}()
|
}()
|
||||||
fmt.Println(Green("Repo:"), Yellow("https://github.com/oneclickvirt/backtrace"))
|
fmt.Println(Green("Repo:"), Yellow("https://github.com/oneclickvirt/backtrace"))
|
||||||
var showVersion, showIpInfo, help, ipv6 bool
|
var showVersion, showIpInfo, help, ipv6 bool
|
||||||
|
var specifiedIP string
|
||||||
backtraceFlag := flag.NewFlagSet("backtrace", flag.ContinueOnError)
|
backtraceFlag := flag.NewFlagSet("backtrace", flag.ContinueOnError)
|
||||||
backtraceFlag.BoolVar(&help, "h", false, "Show help information")
|
backtraceFlag.BoolVar(&help, "h", false, "Show help information")
|
||||||
backtraceFlag.BoolVar(&showVersion, "v", false, "Show version")
|
backtraceFlag.BoolVar(&showVersion, "v", false, "Show version")
|
||||||
backtraceFlag.BoolVar(&showIpInfo, "s", true, "Disabe show ip info")
|
backtraceFlag.BoolVar(&showIpInfo, "s", true, "Disabe show ip info")
|
||||||
backtraceFlag.BoolVar(&model.EnableLoger, "log", false, "Enable logging")
|
backtraceFlag.BoolVar(&model.EnableLoger, "log", false, "Enable logging")
|
||||||
backtraceFlag.BoolVar(&ipv6, "ipv6", false, "Enable ipv6 testing")
|
backtraceFlag.BoolVar(&ipv6, "ipv6", false, "Enable ipv6 testing")
|
||||||
|
backtraceFlag.StringVar(&specifiedIP, "ip", "", "Specify IP address for bgptools")
|
||||||
backtraceFlag.Parse(os.Args[1:])
|
backtraceFlag.Parse(os.Args[1:])
|
||||||
if help {
|
if help {
|
||||||
fmt.Printf("Usage: %s [options]\n", os.Args[0])
|
fmt.Printf("Usage: %s [options]\n", os.Args[0])
|
||||||
@ -62,12 +60,21 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
preCheck := utils.CheckPublicAccess(3 * time.Second)
|
preCheck := utils.CheckPublicAccess(3 * time.Second)
|
||||||
if preCheck.Connected && info.Ip != "" {
|
if preCheck.Connected {
|
||||||
result, err := bgptools.GetPoPInfo(info.Ip)
|
var targetIP string
|
||||||
|
if specifiedIP != "" {
|
||||||
|
targetIP = specifiedIP
|
||||||
|
} else if info.Ip != "" {
|
||||||
|
targetIP = info.Ip
|
||||||
|
}
|
||||||
|
|
||||||
|
if targetIP != "" {
|
||||||
|
result, err := bgptools.GetPoPInfo(targetIP)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
fmt.Print(result.Result)
|
fmt.Print(result.Result)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if preCheck.Connected && preCheck.StackType == "DualStack" {
|
if preCheck.Connected && preCheck.StackType == "DualStack" {
|
||||||
backtrace.BackTrace(ipv6)
|
backtrace.BackTrace(ipv6)
|
||||||
} else if preCheck.Connected && preCheck.StackType == "IPv4" {
|
} else if preCheck.Connected && preCheck.StackType == "IPv4" {
|
||||||
|
Loading…
Reference in New Issue
Block a user