@@ -7,11 +7,13 @@ if [ "$#" -ne 1 ]; then
77fi
88
99input_file=" $1 "
10+ # 输出文件定义
1011output_file_main=" trackers_best.txt"
1112output_file_http=" trackers_best_http.txt"
1213output_file_https=" trackers_best_https.txt"
1314output_file_udp=" trackers_best_udp.txt"
1415output_file_wss=" trackers_best_wss.txt"
16+ output_file_aria2=" trackers_best_aria2.txt" # 新增 Aria2 输出文件
1517
1618# 检查文件是否存在
1719if [ ! -f " $input_file " ]; then
2527> " $output_file_https "
2628> " $output_file_udp "
2729> " $output_file_wss "
30+ > " $output_file_aria2 "
2831
29- # 过滤掉包含blackstr.txt中恶意IP的URL,然后逐行处理
32+ echo " Starting connectivity test..."
33+
34+ # 过滤黑名单并开始循环
3035{
3136 if [ -f " blackstr.txt" ]; then
3237 grep -v -F -f blackstr.txt " $input_file "
3338 else
3439 cat " $input_file "
3540 fi
3641} | while IFS= read -r tracker; do
42+ # 忽略空行
43+ [ -z " $tracker " ] && continue
44+
3745 protocol=$( echo " $tracker " | grep -oE ' ^[a-z]+' )
38-
46+ is_alive=0
47+
3948 case $protocol in
4049 http)
4150 if curl -s -f -m 1 " $tracker " & > /dev/null; then
42- echo " Success : $tracker "
51+ echo -e " \033[32mSuccess\033[0m : $tracker "
4352 echo " $tracker " >> " $output_file_main "
4453 echo " $tracker " >> " $output_file_http "
54+ is_alive=1
4555 else
46- echo " Failed : $tracker "
56+ echo -e " \033[31mFailed\033[0m : $tracker "
4757 fi
4858 ;;
4959 https)
5060 if curl -s -f -m 1 " $tracker " & > /dev/null; then
51- echo " Success : $tracker "
61+ echo -e " \033[32mSuccess\033[0m : $tracker "
5262 echo " $tracker " >> " $output_file_main "
5363 echo " $tracker " >> " $output_file_https "
64+ is_alive=1
5465 else
55- echo " Failed : $tracker "
66+ echo -e " \033[31mFailed\033[0m : $tracker "
5667 fi
5768 ;;
5869 udp)
5970 host=$( echo " $tracker " | cut -d' /' -f3)
6071 port=$( echo " $host " | cut -d' :' -f2)
6172 host=$( echo " $host " | cut -d' :' -f1)
73+ # nc 增加 -w 1 超时
6274 if nc -zuv -w 1 " $host " " $port " & > /dev/null; then
63- echo " Success : $tracker "
75+ echo -e " \033[32mSuccess\033[0m : $tracker "
6476 echo " $tracker " >> " $output_file_main "
6577 echo " $tracker " >> " $output_file_udp "
78+ is_alive=1
6679 else
67- echo " Failed : $tracker "
80+ echo -e " \033[31mFailed\033[0m : $tracker "
6881 fi
6982 ;;
7083 wss)
71- # WSS tracker 测试 - 使用简单的 TCP 连接测试
7284 host=$( echo " $tracker " | sed ' s|wss://||' | cut -d' /' -f1)
7385 port=$( echo " $host " | cut -d' :' -f2)
7486 if [ " $port " = " $host " ]; then
75- port=443 # WSS 默认端口
87+ port=443
7688 host=$( echo " $host " | cut -d' :' -f1)
7789 else
7890 host=$( echo " $host " | cut -d' :' -f1)
7991 fi
8092
8193 if nc -zv -w 1 " $host " " $port " & > /dev/null; then
82- echo " Success : $tracker "
94+ echo -e " \033[32mSuccess\033[0m : $tracker "
8395 echo " $tracker " >> " $output_file_main "
8496 echo " $tracker " >> " $output_file_wss "
97+ is_alive=1
8598 else
86- echo " Failed : $tracker "
99+ echo -e " \033[31mFailed\033[0m : $tracker "
87100 fi
88101 ;;
89102 * )
92105 esac
93106done
94107
108+ # 生成 Aria2 格式 (将测试通过的列表合并为逗号分隔字符串)
109+ if [ -s " $output_file_main " ]; then
110+ echo " Generating Aria2 format..."
111+ paste -sd " ," " $output_file_main " > " $output_file_aria2 "
112+ fi
113+
95114echo " Testing complete."
115+ echo " Best trackers saved to $output_file_main "
116+ echo " Aria2 format saved to $output_file_aria2 "
0 commit comments