Update nodeloc_vps_autotest_ip.sh

This commit is contained in:
Jensfrank 2024-06-27 02:19:21 +08:00 committed by GitHub
parent 2f993340d4
commit 75472bda91
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -140,79 +140,17 @@ show_welcome() {
touch /root/results.md touch /root/results.md
chmod 777 /root/results.md chmod 777 /root/results.md
# 获取IP输出结果
extract_ip_report() {
echo "开始执行 IP 质量检测..." >&2
# 检查 curl 是否可用
if ! command -v curl &> /dev/null; then
echo "错误: curl 命令不可用" >&2
return 1
fi
# 尝试下载脚本
local curl_output
curl_output=$(curl -Ls IP.Check.Place)
local curl_exit_code=$?
echo "curl 退出码: $curl_exit_code" >&2
echo "curl 输出长度: $(echo "$curl_output" | wc -c) 字节" >&2
if [ $curl_exit_code -ne 0 ] || [ -z "$curl_output" ]; then
echo "错误: curl 命令失败或返回空输出" >&2
return 1
fi
# 将下载的脚本保存到临时文件
local temp_script=$(mktemp)
echo "$curl_output" > "$temp_script"
# 执行下载的脚本
local bash_output
bash_output=$(bash "$temp_script" 2>&1)
local bash_exit_code=$?
echo "bash 退出码: $bash_exit_code" >&2
echo "bash 输出长度: $(echo "$bash_output" | wc -l)" >&2
# 清理临时文件
rm -f "$temp_script"
if [ $bash_exit_code -ne 0 ] || [ -z "$bash_output" ]; then
echo "错误: bash 执行失败或返回空输出" >&2
return 1
fi
# 处理输出
echo "$bash_output" | awk '
BEGIN {flag=0; lines=0}
/^########################################################################$/ {flag=1}
flag && !/按回车键返回主菜单.../ {print; lines++}
/按回车键返回主菜单.../ {flag=0}
END {print "共输出 " lines " 行" > "/dev/stderr"}
'
}
# 运行测试 # 运行测试
run_all_tests() { run_all_tests() {
echo -e "${RED}开始测试,测试时间较长,请耐心等待...${NC}" echo -e "${RED}开始测试,测试时间较长,请耐心等待...${NC}"
# IP质量 # IP质量
echo -e "运行${YELLOW}IP质量测试...${NC}" echo -e "运行${YELLOW}IP质量测试...${NC}"
ip_quality_result=$(extract_ip_report 2>&1) ip_quality_result=$(run_and_capture "bash <(curl -Ls IP.Check.Place)")
extract_exit_code=$?
echo "extract_ip_report 退出码: $extract_exit_code" >&2
echo "IP质量结果长度: $(echo "$ip_quality_result" | wc -l)" >&2
if [ $extract_exit_code -ne 0 ] || [ -z "$ip_quality_result" ]; then
echo "extract_ip_report 函数失败或返回空结果" >&2
ip_quality_result="无法获取 IP 质量报告。请检查网络连接或脚本执行权限。"
fi
# 格式化结果 # 格式化结果
echo -e "${YELLOW}此报告由Nodeloc_VPS_自动脚本测试生成...${NC}" echo -e "${YELLOW}此报告由Nodeloc_VPS_自动脚本测试生成...${NC}"
format_results "$ip_quality_result" format_results
} }
# 格式化输出结果 # 格式化输出结果