Skip to content

Commit 92d5216

Browse files
committed
v1.2.3 新增 测速后 直接显示结果 功能
1 parent 63e2bc0 commit 92d5216

File tree

2 files changed

+51
-18
lines changed

2 files changed

+51
-18
lines changed

README.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,17 @@ https://github.com/XIU2/CloudflareSpeedTest
3838
3939
参数:
4040
-n 500
41-
测速线程数量;数值越大速度越快,请勿超过1000(结果误差大);(默认 500)
41+
测速线程数量;数值越大速度越快,请勿超过 1000(结果误差大);(默认 500)
4242
-t 4
4343
延迟测速次数;单个 IP 测速次数,为 1 时将过滤丢包的IP,TCP协议;(默认 4)
4444
-dn 20
45-
下载测速数量;延迟测速并排序后,从最低延迟起测试下载速度的数量,请勿太多(速度慢);(默认 20)
45+
下载测速数量;延迟测速并排序后,从最低延迟起下载测速数量,请勿太多(速度慢);(默认 20)
4646
-dt 10
4747
下载测速时间;单个 IP 测速最长时间,单位:秒;(默认 10)
48+
-p 20
49+
直接显示结果;测速后直接显示指定数量的结果,为 -1 时不显示结果直接退出;(默认 20)
4850
-f ip.txt
49-
IP 数据文件;相对/绝对路径,如包含空格请加上引号;支持其他 CDN IP段,记得禁用下载测试;(默认 ip.txt)
51+
IP 数据文件;相对/绝对路径,如包含空格请加上引号;支持其他 CDN IP段,记得禁用下载测速;(默认 ip.txt)
5052
-o result.csv
5153
输出结果文件;相对/绝对路径,如包含空格请加上引号;允许 .txt 等后缀;(默认 result.csv)
5254
-dd
@@ -57,9 +59,9 @@ https://github.com/XIU2/CloudflareSpeedTest
5759
打印帮助说明
5860
5961
示例:
60-
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10
61-
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "ip.txt" -o "result.csv" -dd
62-
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "C:\abc\ip.txt" -o "C:\abc\result.csv" -dd
62+
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p 20
63+
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p -1 -f "ip.txt" -o "result.csv" -dd
64+
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p -1 -f "C:\abc\ip.txt" -o "C:\abc\result.csv" -dd
6365
```
6466

6567
#### 使用示例
@@ -69,19 +71,19 @@ https://github.com/XIU2/CloudflareSpeedTest
6971
7072
``` cmd
7173
# CMD 示例
72-
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10
74+
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p 20
7375
7476
# 指定 IP数据文件 及 输出结果文件(相对路径,即当前目录下)
75-
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "ip.txt" -o "result.csv" -dd
77+
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p -1 -f "ip.txt" -o "result.csv" -dd
7678
7779
# 指定 IP数据文件 及 输出结果文件(绝对路径,即 C:\abc\ 目录下)
78-
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "C:\abc\ip.txt" -o "C:\abc\result.csv" -dd
80+
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p -1 -f "C:\abc\ip.txt" -o "C:\abc\result.csv" -dd
7981
```
8082

8183
``` cmd
8284
# 快捷方式示例(右键快捷方式 - 目标)
8385
## 如果有引号就放在引号外面,记得引号和 - 之间有空格。
84-
"D:\Program Files\CloudflareST\CloudflareST.exe" -n 500 -t 4 -dn 20 -dt 10
86+
"D:\Program Files\CloudflareST\CloudflareST.exe" -n 500 -t 4 -dn 20 -dt 10 -p 20
8587
```
8688

8789
****

main.go

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ var version string
1515
var disableDownload bool
1616
var ipFile string
1717
var outputFile string
18+
var printResult int
1819

1920
func init() {
2021
var downloadSecond int64
@@ -26,15 +27,17 @@ https://github.com/XIU2/CloudflareSpeedTest
2627
2728
参数:
2829
-n 500
29-
测速线程数量;数值越大速度越快,请勿超过1000(结果误差大);(默认 500)
30+
测速线程数量;数值越大速度越快,请勿超过 1000(结果误差大);(默认 500)
3031
-t 4
3132
延迟测速次数;单个 IP 测速次数,为 1 时将过滤丢包的IP,TCP协议;(默认 4)
3233
-dn 20
33-
下载测速数量;延迟测速并排序后,从最低延迟起测试下载速度的数量,请勿太多(速度慢);(默认 20)
34+
下载测速数量;延迟测速并排序后,从最低延迟起下载测速数量,请勿太多(速度慢);(默认 20)
3435
-dt 10
3536
下载测速时间;单个 IP 测速最长时间,单位:秒;(默认 10)
37+
-p 20
38+
直接显示结果;测速后直接显示指定数量的结果,为 -1 时不显示结果直接退出;(默认 20)
3639
-f ip.txt
37-
IP 数据文件;相对/绝对路径,如包含空格请加上引号;支持其他 CDN IP段,记得禁用下载测试;(默认 ip.txt)
40+
IP 数据文件;相对/绝对路径,如包含空格请加上引号;支持其他 CDN IP段,记得禁用下载测速;(默认 ip.txt)
3841
-o result.csv
3942
输出结果文件;相对/绝对路径,如包含空格请加上引号;允许 .txt 等后缀;(默认 result.csv)
4043
-dd
@@ -45,14 +48,15 @@ https://github.com/XIU2/CloudflareSpeedTest
4548
打印帮助说明
4649
4750
示例:
48-
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10
49-
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "ip.txt" -o "result.csv" -dd
50-
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "C:\abc\ip.txt" -o "C:\abc\result.csv" -dd`
51+
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p 20
52+
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p -1 -f "ip.txt" -o "result.csv" -dd
53+
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p -1 -f "C:\abc\ip.txt" -o "C:\abc\result.csv" -dd`
5154

5255
flag.IntVar(&pingRoutine, "n", 500, "测速线程数量")
5356
flag.IntVar(&pingTime, "t", 4, "延迟测速次数")
5457
flag.IntVar(&downloadTestCount, "dn", 20, "下载测速数量")
5558
flag.Int64Var(&downloadSecond, "dt", 10, "下载测速时间")
59+
flag.IntVar(&printResult, "p", 20, "直接显示结果")
5660
flag.BoolVar(&disableDownload, "dd", false, "禁用下载测速")
5761
flag.StringVar(&ipFile, "f", "ip.txt", "IP 数据文件")
5862
flag.StringVar(&outputFile, "o", "result.csv", "输出结果文件")
@@ -78,6 +82,9 @@ https://github.com/XIU2/CloudflareSpeedTest
7882
if downloadSecond <= 0 {
7983
downloadSecond = 10
8084
}
85+
if printResult == 0 {
86+
printResult = 20
87+
}
8188
if ipFile == "" {
8289
ipFile = "ip.txt"
8390
}
@@ -108,7 +115,9 @@ func main() {
108115
bar.Finish()
109116

110117
sort.Sort(CloudflareIPDataSet(data)) // 排序
111-
if !disableDownload { // 如果禁用下载测速就跳过
118+
119+
// 下载测速
120+
if !disableDownload { // 如果禁用下载测速就跳过
112121
if len(data) > 0 { // IP数组长度(IP数量) 大于 0 时继续
113122
if len(data) < downloadTestCount { // 如果IP数组长度(IP数量) 小于 下载测速次数,则次数改为IP数
114123
downloadTestCount = len(data)
@@ -126,5 +135,27 @@ func main() {
126135
fmt.Println("\n[信息] IP数量为 0,跳过下载测速。")
127136
}
128137
}
129-
ExportCsv(outputFile, data) // 输出结果
138+
139+
// 直接输出结果
140+
if printResult > 0 { // 如果禁用下载测速就跳过
141+
dateString := convertToString(data) // 转为多维数组 [][]String
142+
if len(dateString) > 0 { // IP数组长度(IP数量) 大于 0 时继续
143+
if len(dateString) < printResult { // 如果IP数组长度(IP数量) 小于 打印次数,则次数改为IP数量
144+
printResult = len(dateString)
145+
fmt.Println("\n[信息] IP数量小于显示结果数量,显示结果数量改为IP数量。\n")
146+
}
147+
fmt.Println("\nIP 地址 \t", "测试次数\t", "成功次数\t", "成功比率\t", "平均延迟\t", "下载速度 (MB/s)")
148+
for i := 0; i < printResult; i++ {
149+
fmt.Println(dateString[i][0], "\t", dateString[i][1], "\t\t", dateString[i][2], "\t\t", dateString[i][3], "\t\t", dateString[i][4], "\t", dateString[i][5])
150+
}
151+
fmt.Printf("\n完整内容请查看 %v 文件。请按 回车键 或 Ctrl+C 退出。", outputFile)
152+
var pause int
153+
fmt.Scanln(&pause)
154+
} else {
155+
fmt.Println("\n[信息] IP数量为 0,跳过输出结果。")
156+
}
157+
}
158+
159+
// 输出结果到文件
160+
ExportCsv(outputFile, data)
130161
}

0 commit comments

Comments
 (0)