mirror of
https://github.com/oneclickvirt/ecs.git
synced 2025-10-03 06:32:30 +08:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
3bd1136683 | ||
![]() |
d5837ed535 | ||
![]() |
080c62cd93 | ||
![]() |
ce690aab2d | ||
![]() |
05ec4d75b8 | ||
![]() |
553e0ddef6 | ||
![]() |
819d155fd5 | ||
![]() |
d7519801b0 | ||
![]() |
d6302be4ae | ||
![]() |
a8366005dc | ||
![]() |
4e3249b590 | ||
![]() |
8a52f6df76 | ||
![]() |
ebe85216bb |
28
README.md
28
README.md
@@ -4,8 +4,6 @@
|
||||
|
||||
[](https://www.spiritlhl.net/)
|
||||
|
||||
[<img src="https://api.gitsponsors.com/api/badge/img?id=819808844" height="20">](https://api.gitsponsors.com/api/badge/link?p=3sgKiCtfJJbBT6XMAb1xeTadeXZcXeRXLsRG9HW+cFAZcmACmclN+HNM72KLMvwZdHrl7sjG6in68CwoQ7CNh4hoIz2s4ksTxcCIWoH9M3OsR/kHv31sS+0ZqR3O04BD3SqFX8B7ayuM9JCC4zKblg==)
|
||||
|
||||
融合怪测评项目 - GO 重构版本
|
||||
|
||||
如有问题请 [issues](https://github.com/oneclickvirt/ecs/issues) 反馈。
|
||||
@@ -157,7 +155,13 @@ Shell 版本:[https://github.com/spiritLHLS/ecs](https://github.com/spiritLHLS
|
||||
./goecs.sh uninstall
|
||||
```
|
||||
|
||||
6. **唤起菜单**
|
||||
6. **帮助命令**
|
||||
|
||||
```bash
|
||||
./goecs.sh -h
|
||||
```
|
||||
|
||||
7. **唤起菜单**
|
||||
|
||||
```bash
|
||||
goecs
|
||||
@@ -347,4 +351,20 @@ GOOS=darwin GOARCH=amd64 go build -o goecs_darwin
|
||||
|
||||
#### Q: 非Root环境如何进行测试?
|
||||
|
||||
#### A: 手动执行安装命令,实在装不上也没问题,直接在release中下载对应架构的压缩包解压后执行即可,只要你能执行的了文件。或者你能使用docker的话用docker执行。
|
||||
#### A: 手动执行安装命令,实在装不上也没问题,直接在release中下载对应架构的压缩包解压后执行即可,只要你能执行的了文件。或者你能使用docker的话用docker执行。
|
||||
|
||||
## 致谢
|
||||
|
||||
感谢 [ipinfo.io](https://ipinfo.io) [ip.sb](https://ip.sb) [cheervision.co](https://cheervision.co) [cip.cc](http://www.cip.cc) [scamalytics.com](https://scamalytics.com) [abuseipdb.com](https://www.abuseipdb.com/) [virustotal.com](https://www.virustotal.com/) [ip2location.com](ip2location.com/) [ip-api.com](https://ip-api.com) [ipregistry.co](https://ipregistry.co/) [ipdata.co](https://ipdata.co/) [ipgeolocation.io](https://ipgeolocation.io) [ipwhois.io](https://ipwhois.io) [ipapi.com](https://ipapi.com/) [ipapi.is](https://ipapi.is/) [ipqualityscore.com](https://www.ipqualityscore.com/) [bigdatacloud.com](https://www.bigdatacloud.com/) ~~[ipip.net](https://en.ipip.net)~~ ~~[abstractapi.com](https://abstractapi.com/)~~ 等网站提供的API进行检测,感谢互联网各网站提供的查询资源
|
||||
|
||||
感谢
|
||||
|
||||
<a href="https://h501.io/?from=69" target="_blank">
|
||||
<img src="https://github.com/spiritLHLS/ecs/assets/103393591/dfd47230-2747-4112-be69-b5636b34f07f" alt="h501">
|
||||
</a>
|
||||
|
||||
提供的免费托管支持本开源项目的共享测试结果存储
|
||||
|
||||
同时感谢以下平台提供编辑和测试支持
|
||||
|
||||

|
||||
|
11
README_EN.md
11
README_EN.md
@@ -4,8 +4,6 @@
|
||||
|
||||
[](https://www.spiritlhl.net/)
|
||||
|
||||
[<img src="https://api.gitsponsors.com/api/badge/img?id=819808844" height="20">](https://api.gitsponsors.com/api/badge/link?p=3sgKiCtfJJbBT6XMAb1xeTadeXZcXeRXLsRG9HW+cFAZcmACmclN+HNM72KLMvwZdHrl7sjG6in68CwoQ7CNh4hoIz2s4ksTxcCIWoH9M3OsR/kHv31sS+0ZqR3O04BD3SqFX8B7ayuM9JCC4zKblg==)
|
||||
|
||||
Fusion Monster Evaluation Project - GO Refactored Version
|
||||
|
||||
Please report any issues via [issues](https://github.com/oneclickvirt/ecs/issues).
|
||||
@@ -155,9 +153,14 @@ Will install dependencies by default, update package manager by default, non-int
|
||||
|
||||
```bash
|
||||
./goecs.sh uninstall
|
||||
|
||||
6. **help command**
|
||||
|
||||
```bash
|
||||
./goecs.sh -h
|
||||
```
|
||||
|
||||
6. **Invoke the menu**
|
||||
7. **Invoke the menu**
|
||||
|
||||
```bash
|
||||
goecs -l en
|
||||
@@ -345,4 +348,4 @@ Note that `goecs` allows you to specify CPU test method via parameters. The defa
|
||||
|
||||
#### Q: How do I test in a non-Root environment?
|
||||
|
||||
#### A: Execute the installation command manually. If you can't install it, simply download the appropriate architecture package from releases, extract it, and run the file if you have execution permissions. Alternatively, use Docker if you can.
|
||||
#### A: Execute the installation command manually. If you can't install it, simply download the appropriate architecture package from releases, extract it, and run the file if you have execution permissions. Alternatively, use Docker if you can.
|
||||
|
6
go.mod
6
go.mod
@@ -5,7 +5,7 @@ go 1.23.4
|
||||
require (
|
||||
github.com/imroc/req/v3 v3.49.0
|
||||
github.com/oneclickvirt/CommonMediaTests v0.0.4-20240704024502
|
||||
github.com/oneclickvirt/UnlockTests v0.0.25-20250204100855
|
||||
github.com/oneclickvirt/UnlockTests v0.0.26-20250301144558
|
||||
github.com/oneclickvirt/backtrace v0.0.4-20240702140722
|
||||
github.com/oneclickvirt/basics v0.0.9-20250205131258
|
||||
github.com/oneclickvirt/cputest v0.0.9-20250103063414
|
||||
@@ -14,10 +14,10 @@ require (
|
||||
github.com/oneclickvirt/gostun v0.0.3-20240702054621
|
||||
github.com/oneclickvirt/memorytest v0.0.4-20240820095126
|
||||
github.com/oneclickvirt/nt3 v0.0.4-20250118032755
|
||||
github.com/oneclickvirt/pingtest v0.0.5-20241006123443
|
||||
github.com/oneclickvirt/pingtest v0.0.5-20250308015024
|
||||
github.com/oneclickvirt/portchecker v0.0.3-20250118031146
|
||||
github.com/oneclickvirt/security v0.0.4-20240729065854
|
||||
github.com/oneclickvirt/speedtest v0.0.8-20250217133052
|
||||
github.com/oneclickvirt/speedtest v0.0.9-20250308142627
|
||||
)
|
||||
|
||||
require (
|
||||
|
12
go.sum
12
go.sum
@@ -103,8 +103,8 @@ github.com/nxtrace/NTrace-core v1.3.7 h1:ZnTbPrPqpyeraCvUyNbQTNyl4Gz3NRQDh06WdII
|
||||
github.com/nxtrace/NTrace-core v1.3.7/go.mod h1:aW2owz9I+W5i+gJEDmnWli75mB+fuO4UTwdOPMcQHpE=
|
||||
github.com/oneclickvirt/CommonMediaTests v0.0.4-20240704024502 h1:hRIYJ2uEp2N3AH5bP5X6bwfdwWfZQO/2WoqpUJ8+WsY=
|
||||
github.com/oneclickvirt/CommonMediaTests v0.0.4-20240704024502/go.mod h1:DAmFPRjFV5p9fEzUUSml5jJGn2f1NZJQCzTxITHDjc4=
|
||||
github.com/oneclickvirt/UnlockTests v0.0.25-20250204100855 h1:ZJQJ2fz4vzTE4aiHcvCRFKMb7RwRmaDWk6MZNRtJKg0=
|
||||
github.com/oneclickvirt/UnlockTests v0.0.25-20250204100855/go.mod h1:yXWIZB6iLS88pEd9m4QJi1GENn+7I91zA72y5ONz2Oc=
|
||||
github.com/oneclickvirt/UnlockTests v0.0.26-20250301144558 h1:CE4RKKEXxquXMEmOdiT8XTQvrJHDZdEr+xMFmx3Cw3E=
|
||||
github.com/oneclickvirt/UnlockTests v0.0.26-20250301144558/go.mod h1:yXWIZB6iLS88pEd9m4QJi1GENn+7I91zA72y5ONz2Oc=
|
||||
github.com/oneclickvirt/backtrace v0.0.4-20240702140722 h1:UJ/VWf+ZbhGarc9HcHMIyenpmX+b2LxkXu0hlLk3Gxs=
|
||||
github.com/oneclickvirt/backtrace v0.0.4-20240702140722/go.mod h1:zvsC7xY/WZqs5KL2JB967OVnuqjNbxu9bW6wXRLo5h8=
|
||||
github.com/oneclickvirt/basics v0.0.9-20250205131258 h1:LytqWIVlzT1ZS/thB8ZXk7tEpoaj+i6pBQBtACziBjc=
|
||||
@@ -121,14 +121,14 @@ github.com/oneclickvirt/memorytest v0.0.4-20240820095126 h1:Il3rvWkrZy/6B2iO3HRe
|
||||
github.com/oneclickvirt/memorytest v0.0.4-20240820095126/go.mod h1:+YNzy+NeVg61d0kNwSyVDqHyVtKzjuRe1NvMzsDLg0I=
|
||||
github.com/oneclickvirt/nt3 v0.0.4-20250118032755 h1:phF5kngqoPnS6onIbKII9ndw/N5l3ciIgR7fK5mfSBk=
|
||||
github.com/oneclickvirt/nt3 v0.0.4-20250118032755/go.mod h1:lDpHmjWwLZd6pO8cZCwzrc5rwd8dK+TIYk+DGmRpSGg=
|
||||
github.com/oneclickvirt/pingtest v0.0.5-20241006123443 h1:Ywrh0Yd/PYXOKGE8VaNiKGWlIqdgLLgsthAzxy0t7s8=
|
||||
github.com/oneclickvirt/pingtest v0.0.5-20241006123443/go.mod h1:d3Ntx5m9lMll3a/k3+2B+5emj//vgDh4/NHTxs2qQE8=
|
||||
github.com/oneclickvirt/pingtest v0.0.5-20250308015024 h1:AK+jEp6xq8AAuELtOmWG/yv5nEUZANlTmbpTLbOmx9M=
|
||||
github.com/oneclickvirt/pingtest v0.0.5-20250308015024/go.mod h1:d3Ntx5m9lMll3a/k3+2B+5emj//vgDh4/NHTxs2qQE8=
|
||||
github.com/oneclickvirt/portchecker v0.0.3-20250118031146 h1:tXTcpq8P3KgQupEZhPcAwdiyXYy//jXGb28bp4bSt4g=
|
||||
github.com/oneclickvirt/portchecker v0.0.3-20250118031146/go.mod h1:HQxSTrqM8/QFqHMTBZ7S8H9eEO5FkUXU1eb7ZX5Mk+k=
|
||||
github.com/oneclickvirt/security v0.0.4-20240729065854 h1:I27XtMUEHmXw1RN0jNDQmFqNdu6vL4v1g8UZtXiCuBY=
|
||||
github.com/oneclickvirt/security v0.0.4-20240729065854/go.mod h1:384ZpNE3H6T6rtl0QhA4eQn8xGw7tc0rLD8ZH47qNGc=
|
||||
github.com/oneclickvirt/speedtest v0.0.8-20250217133052 h1:Gzgc01DFR8kSbdf2iJdGvJMS3RPDYWnS9ZANi3iiqx4=
|
||||
github.com/oneclickvirt/speedtest v0.0.8-20250217133052/go.mod h1:zd5ZgIGslmtQLQehEfRjyumlvgDHTpCSMchKfKXoASI=
|
||||
github.com/oneclickvirt/speedtest v0.0.9-20250308142627 h1:HPUJ5LR2C3UkQT7jegG7rtiwJJchGUUpWsbTHn15xT0=
|
||||
github.com/oneclickvirt/speedtest v0.0.9-20250308142627/go.mod h1:zd5ZgIGslmtQLQehEfRjyumlvgDHTpCSMchKfKXoASI=
|
||||
github.com/onsi/ginkgo/v2 v2.22.1 h1:QW7tbJAUDyVDVOM5dFa7qaybo+CRfR7bemlQUN6Z8aM=
|
||||
github.com/onsi/ginkgo/v2 v2.22.1/go.mod h1:S6aTpoRsSq2cZOd+pssHAlKW/Q/jZt6cPrPlnj4a1xM=
|
||||
github.com/onsi/gomega v1.36.1 h1:bJDPBO7ibjxcbHMgSCoo4Yj18UWbKDlLwX1x9sybDcw=
|
||||
|
2
goecs.go
2
goecs.go
@@ -39,7 +39,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
ecsVersion = "v0.1.13"
|
||||
ecsVersion = "v0.1.18"
|
||||
menuMode bool
|
||||
onlyChinaTest bool
|
||||
input, choice string
|
||||
|
41
goecs.sh
41
goecs.sh
@@ -85,40 +85,11 @@ check_china() {
|
||||
;;
|
||||
esac
|
||||
else
|
||||
# 在非交互模式下默认使用中国镜像
|
||||
CN=true
|
||||
fi
|
||||
else
|
||||
# 如果 ipapi.co 检测失败,尝试使用 cip.cc
|
||||
if ! curl -m 6 -s https://ipapi.co/json >/dev/null 2>&1; then
|
||||
if curl -m 6 -s cip.cc | grep -q "中国"; then
|
||||
_yellow "根据cip.cc提供的信息,当前IP可能在中国"
|
||||
if [ "$noninteractive" != "true" ]; then
|
||||
reading "是否使用中国镜像完成安装? ([y]/n) " input
|
||||
case $input in
|
||||
[yY][eE][sS] | [yY] | "")
|
||||
_green "已选择使用中国镜像"
|
||||
CN=true
|
||||
;;
|
||||
[nN][oO] | [nN])
|
||||
_yellow "已选择不使用中国镜像"
|
||||
CN=false
|
||||
;;
|
||||
*)
|
||||
_green "已选择使用中国镜像"
|
||||
CN=true
|
||||
;;
|
||||
esac
|
||||
else
|
||||
# 在非交互模式下默认使用中国镜像
|
||||
CN=true
|
||||
fi
|
||||
else
|
||||
CN=false
|
||||
fi
|
||||
else
|
||||
# 在非交互模式下默认不使用中国镜像
|
||||
CN=false
|
||||
fi
|
||||
else
|
||||
CN=false
|
||||
fi
|
||||
fi
|
||||
}
|
||||
@@ -168,8 +139,8 @@ goecs_check() {
|
||||
sleep 1
|
||||
done
|
||||
if [ -z "$ECS_VERSION" ]; then
|
||||
_yellow "Unable to get version info, using default version 0.1.8"
|
||||
ECS_VERSION="0.1.8"
|
||||
_yellow "Unable to get version info, using default version 0.1.18"
|
||||
ECS_VERSION="0.1.18"
|
||||
fi
|
||||
# Check if original goecs command exists
|
||||
version_output=""
|
||||
@@ -651,8 +622,6 @@ show_help() {
|
||||
./goecs.sh uninstall 卸载 goecs 命令
|
||||
./goecs.sh help 显示此消息
|
||||
|
||||
[English version follows...]
|
||||
|
||||
Available commands:
|
||||
|
||||
./goecs.sh env Check and Install dependencies
|
||||
|
@@ -60,59 +60,24 @@ func CheckChina(enableLogger bool) bool {
|
||||
SetRetryBackoffInterval(1*time.Second, 3*time.Second).
|
||||
SetRetryFixedInterval(2 * time.Second)
|
||||
ipapiURL := "https://ipapi.co/json"
|
||||
cipccURL := "http://cip.cc"
|
||||
ipapiResp, err := client.R().Get(ipapiURL)
|
||||
if err != nil {
|
||||
if enableLogger {
|
||||
Logger.Info("无法获取IP信息:" + err.Error())
|
||||
}
|
||||
} else {
|
||||
defer ipapiResp.Body.Close()
|
||||
var ipapiBody string
|
||||
ipapiBody, err = ipapiResp.ToString()
|
||||
if err != nil {
|
||||
if enableLogger {
|
||||
Logger.Info("无法读取IP信息响应:" + err.Error())
|
||||
}
|
||||
} else {
|
||||
isInChina := strings.Contains(ipapiBody, "China")
|
||||
if isInChina {
|
||||
fmt.Println("根据ipapi.co提供的信息,当前IP可能在中国")
|
||||
var input string
|
||||
fmt.Print("是否选用中国专项测试(无流媒体测试,有三网Ping值测试)? ([y]/n) ")
|
||||
fmt.Scanln(&input)
|
||||
switch strings.ToLower(input) {
|
||||
case "yes", "y":
|
||||
fmt.Println("使用中国专项测试")
|
||||
selectChina = true
|
||||
case "no", "n":
|
||||
fmt.Println("不使用中国专项测试")
|
||||
default:
|
||||
fmt.Println("使用中国专项测试")
|
||||
selectChina = true
|
||||
}
|
||||
return selectChina
|
||||
}
|
||||
}
|
||||
}
|
||||
cipccResp, err := client.R().Get(cipccURL)
|
||||
if err != nil {
|
||||
if enableLogger {
|
||||
Logger.Info("无法获取IP信息:" + err.Error())
|
||||
}
|
||||
return false
|
||||
}
|
||||
defer cipccResp.Body.Close()
|
||||
cipccBody, err := cipccResp.ToString()
|
||||
defer ipapiResp.Body.Close()
|
||||
ipapiBody, err := ipapiResp.ToString()
|
||||
if err != nil {
|
||||
if enableLogger {
|
||||
Logger.Info("无法读取IP信息响应:" + err.Error())
|
||||
}
|
||||
return false
|
||||
}
|
||||
isInChina := strings.Contains(cipccBody, "中国")
|
||||
isInChina := strings.Contains(ipapiBody, "China")
|
||||
if isInChina {
|
||||
fmt.Println("根据cip.cc提供的信息,当前IP可能在中国")
|
||||
fmt.Println("根据 ipapi.co 提供的信息,当前IP可能在中国")
|
||||
var input string
|
||||
fmt.Print("是否选用中国专项测试(无流媒体测试,有三网Ping值测试)? ([y]/n) ")
|
||||
fmt.Scanln(&input)
|
||||
@@ -123,7 +88,7 @@ func CheckChina(enableLogger bool) bool {
|
||||
case "no", "n":
|
||||
fmt.Println("不使用中国专项测试")
|
||||
default:
|
||||
fmt.Println("不使用中国专项测试")
|
||||
fmt.Println("使用中国专项测试")
|
||||
selectChina = true
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user