2024.05.01

This commit is contained in:
spiritlhl 2024-05-01 13:39:16 +00:00
parent 237369da84
commit c0568c0d9c
3 changed files with 101 additions and 17 deletions

View File

@ -2,12 +2,22 @@
[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Foneclickvirt%2Fbacktrace&count_bg=%2323E01C&title_bg=%23555555&icon=sonarcloud.svg&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com) [![Build and Release](https://github.com/oneclickvirt/backtrace/actions/workflows/main.yaml/badge.svg)](https://github.com/oneclickvirt/backtrace/actions/workflows/main.yaml) [![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Foneclickvirt%2Fbacktrace&count_bg=%2323E01C&title_bg=%23555555&icon=sonarcloud.svg&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com) [![Build and Release](https://github.com/oneclickvirt/backtrace/actions/workflows/main.yaml/badge.svg)](https://github.com/oneclickvirt/backtrace/actions/workflows/main.yaml)
基于 https://github.com/zhanghanyun/backtrace 的重构和优化版本,支持多系统多架构,记录多个线路 三网回程路由测试
基于 https://github.com/zhanghanyun/backtrace 的重构和优化,与原版存在很大不同
## 功能
- [x] 检测回程显示IPV4地址时的线路不显示IP地址时显示ASN检测不到原版[backtrace](https://github.com/zhanghanyun/backtrace)也支持
- [x] 支持对```4837```、```9929```和```163```线路的判断,原版[backtrace](https://github.com/zhanghanyun/backtrace)也支持
- [x] 支持对```CN2GT```和```CN2GIA```线路的判断,原版[backtrace](https://github.com/zhanghanyun/backtrace)不支持
- [x] 支持对```CMIN2```和```CMI```线路的判断,原版[backtrace](https://github.com/zhanghanyun/backtrace)不支持
- [x] 支持对整个回程路由进行线路分析,与原版[backtrace](https://github.com/zhanghanyun/backtrace)仅进行一次判断不同
- [x] 修复原版[backtrace](https://github.com/zhanghanyun/backtrace)对IPV4地址信息获取时json解析失败依然打印信息的问题
- [x] 增加对全平台的编译支持,原版[backtrace](https://github.com/zhanghanyun/backtrace)仅支持linux平台的amd64和arm64架构
## 使用 ## 使用
终端下运行
```shell ```shell
curl https://raw.githubusercontent.com/oneclickvirt/backtrace/main/backtrace_install.sh -sSf | sh curl https://raw.githubusercontent.com/oneclickvirt/backtrace/main/backtrace_install.sh -sSf | sh
``` ```

View File

@ -55,14 +55,16 @@ func BackTrace() {
rsp, err := http.Get("http://ipinfo.io") rsp, err := http.Get("http://ipinfo.io")
if err != nil { if err != nil {
log.Fatalln("Get ip info err", err) log.Fatalln("Get ip info err", err)
} } else {
info := IpInfo{} info := IpInfo{}
err = json.NewDecoder(rsp.Body).Decode(&info) err = json.NewDecoder(rsp.Body).Decode(&info)
if err != nil { if err != nil {
log.Fatalln("json decode err", err) log.Fatalln("json decode err", err)
} } else {
fmt.Println(Green("国家: ") + White(info.Country) + Green(" 城市: ") + White(info.City) + fmt.Println(Green("国家: ") + White(info.Country) + Green(" 城市: ") + White(info.City) +
Green(" 服务商: ") + Blue(info.Org)) Green(" 服务商: ") + Blue(info.Org))
}
}
for i := range ips { for i := range ips {
go trace(c, i, cmin2) go trace(c, i, cmin2)
} }

View File

@ -1,11 +1,83 @@
#!/bin/bash #!/bin/bash
#From https://github.com/oneclickvirt/backtrace
#2024.05.01
os=$(uname -s)
arch=$(uname -m) arch=$(uname -m)
if [ "$arch" = "x86_64" ]; then
case $os in
Linux)
case $arch in
x86_64)
wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-linux-amd64 wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-linux-amd64
else ;;
arm*)
wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-linux-arm64 wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-linux-arm64
fi ;;
*)
echo "Unsupported architecture: $arch"
exit 1
;;
esac
;;
Darwin)
case $arch in
x86_64)
wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-darwin-amd64
;;
arm64)
wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-darwin-arm64
;;
*)
echo "Unsupported architecture: $arch"
exit 1
;;
esac
;;
FreeBSD)
case $arch in
amd64)
wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-freebsd-amd64
;;
i386)
wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-freebsd-386
;;
arm*)
wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-freebsd-arm64
;;
*)
echo "Unsupported architecture: $arch"
exit 1
;;
esac
;;
OpenBSD)
case $arch in
amd64)
wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-openbsd-amd64
;;
i386)
wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-openbsd-386
;;
arm*)
wget -q -O backtrace https://github.com/oneclickvirt/backtrace/releases/output/backtrace-openbsd-arm64
;;
*)
echo "Unsupported architecture: $arch"
exit 1
;;
esac
;;
*)
echo "Unsupported operating system: $os"
exit 1
;;
esac
chmod 777 backtrace chmod 777 backtrace
if [ -f /usr/bin/ ]; then
mv backtrace /usr/bin/ mv backtrace /usr/bin/
backtrace backtrace
else
./backtrace
fi