Compare commits

..

13 Commits

Author SHA1 Message Date
lihualong
3bd1136683 v0.1.18 - 修复CDN轮换获取测速地址的逻辑问题 2025-03-08 22:34:15 +08:00
lihualong
d5837ed535 v0.1.17 2025-03-08 21:14:57 +08:00
lihualong
080c62cd93 Update 2025-03-08 21:09:05 +08:00
lihualong
ce690aab2d Merge branch 'master' of https://github.com/oneclickvirt/ecs 2025-03-08 13:32:49 +08:00
lihualong
05ec4d75b8 v0.1.16 修复ping的过程中可能的数组越界问题 2025-03-08 13:32:01 +08:00
spiritlhl
553e0ddef6 Update README_EN.md 2025-03-06 13:02:04 +08:00
spiritlhl
819d155fd5 Update README.md 2025-03-06 13:01:40 +08:00
spiritsoul
d7519801b0 v0.1.15 增加中文致谢以及更新修复部分流媒体检测 2025-03-01 22:56:04 +08:00
spiritsoul
d6302be4ae 修复纯IPV6环境下可能出现的空指针引用问题 2025-02-23 11:51:17 +08:00
spiritsoul
a8366005dc 新增 Apple 检测,修复 Instagram 检测,去除 cip.cc 依赖 2025-02-23 11:39:52 +08:00
spiritlhl
4e3249b590 update 2025-02-18 17:58:59 +08:00
spiritlhl
8a52f6df76 Add help command readme 2025-02-18 17:57:55 +08:00
spiritlhl
ebe85216bb Remove cip.cc 2025-02-18 17:54:23 +08:00
7 changed files with 51 additions and 94 deletions

View File

@@ -4,8 +4,6 @@
[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Foneclickvirt%2Fecs&count_bg=%2357DEFF&title_bg=%23000000&icon=cliqz.svg&icon_color=%23E7E7E7&title=hits&edge_flat=false)](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>
提供的免费托管支持本开源项目的共享测试结果存储
同时感谢以下平台提供编辑和测试支持
![PyCharm logo](https://resources.jetbrains.com/storage/products/company/brand/logos/PyCharm.png)

View File

@@ -4,8 +4,6 @@
[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Foneclickvirt%2Fecs&count_bg=%2357DEFF&title_bg=%23000000&icon=cliqz.svg&icon_color=%23E7E7E7&title=hits&edge_flat=false)](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
View File

@@ -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
View File

@@ -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=

View File

@@ -39,7 +39,7 @@ import (
)
var (
ecsVersion = "v0.1.13"
ecsVersion = "v0.1.18"
menuMode bool
onlyChinaTest bool
input, choice string

View File

@@ -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

View File

@@ -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
}
}