mirror of
https://github.com/XIU2/CloudflareSpeedTest.git
synced 2026-03-13 18:55:48 +08:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4c92eae311 | ||
|
|
efdbc8f08e |
@@ -20,8 +20,8 @@
|
|||||||
|
|
||||||
测速完毕后,会显示最快的 20 个 IP,完整结果则保存在当前目录下的 `result.csv` 文件中,用记事本打开,排序为**延迟由低到高**,每一列用逗号分隔,分别是:
|
测速完毕后,会显示最快的 20 个 IP,完整结果则保存在当前目录下的 `result.csv` 文件中,用记事本打开,排序为**延迟由低到高**,每一列用逗号分隔,分别是:
|
||||||
```
|
```
|
||||||
IP 地址, 测试次数, 成功次数, 成功比率, 平均延迟, 下载速度 (MB/s)
|
IP 地址, 已发送, 已接收, 丢包率, 平均延迟, 下载速度 (MB/s)
|
||||||
104.27.70.18, 4, 4, 1.00, 150.79, 12.89
|
104.27.70.18, 4, 4, 0.00, 150.79, 12.89
|
||||||
```
|
```
|
||||||
选择一个平均延迟与下载速度都不错的 IP 放到 `Hosts` 文件中(指向域名)。
|
选择一个平均延迟与下载速度都不错的 IP 放到 `Hosts` 文件中(指向域名)。
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ https://github.com/XIU2/CloudflareSpeedTest
|
|||||||
-f ip.txt
|
-f ip.txt
|
||||||
IP 数据文件;相对/绝对路径,如包含空格请加上引号;支持其他 CDN IP段,记得禁用下载测速;(默认 ip.txt)
|
IP 数据文件;相对/绝对路径,如包含空格请加上引号;支持其他 CDN IP段,记得禁用下载测速;(默认 ip.txt)
|
||||||
-o result.csv
|
-o result.csv
|
||||||
输出结果文件;相对/绝对路径,如包含空格请加上引号;为空时不输出结果文件( -o "" );允许其他后缀;(默认 result.csv)
|
输出结果文件;相对/绝对路径,如包含空格请加上引号;为空格时不输出结果文件( -o " " );允许其他后缀;(默认 result.csv)
|
||||||
-dd
|
-dd
|
||||||
禁用下载测速;如果带上该参数就是禁用下载测速;(默认 启用)
|
禁用下载测速;如果带上该参数就是禁用下载测速;(默认 启用)
|
||||||
-v
|
-v
|
||||||
@@ -77,7 +77,7 @@ https://github.com/XIU2/CloudflareSpeedTest
|
|||||||
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10
|
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10
|
||||||
|
|
||||||
# 指定 IP数据文件,不输出结果文件,直接显示结果(-p 20 条)
|
# 指定 IP数据文件,不输出结果文件,直接显示结果(-p 20 条)
|
||||||
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p 20 -f "ip.txt" -o "" -dd
|
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p 20 -f "ip.txt" -o " " -dd
|
||||||
|
|
||||||
# 指定 IP数据文件 及 输出结果文件(相对路径,即当前目录下)
|
# 指定 IP数据文件 及 输出结果文件(相对路径,即当前目录下)
|
||||||
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "ip.txt" -o "result.csv" -dd
|
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "ip.txt" -o "result.csv" -dd
|
||||||
|
|||||||
11
main.go
11
main.go
@@ -43,7 +43,7 @@ https://github.com/XIU2/CloudflareSpeedTest
|
|||||||
-f ip.txt
|
-f ip.txt
|
||||||
IP 数据文件;相对/绝对路径,如包含空格请加上引号;支持其他 CDN IP段,记得禁用下载测速;(默认 ip.txt)
|
IP 数据文件;相对/绝对路径,如包含空格请加上引号;支持其他 CDN IP段,记得禁用下载测速;(默认 ip.txt)
|
||||||
-o result.csv
|
-o result.csv
|
||||||
输出结果文件;相对/绝对路径,如包含空格请加上引号;为空时不输出结果文件( -o "" );允许其他后缀;(默认 result.csv)
|
输出结果文件;相对/绝对路径,如包含空格请加上引号;为空格时不输出结果文件( -o " " );允许其他后缀;(默认 result.csv)
|
||||||
-dd
|
-dd
|
||||||
禁用下载测速;如果带上该参数就是禁用下载测速;(默认 启用)
|
禁用下载测速;如果带上该参数就是禁用下载测速;(默认 启用)
|
||||||
-v
|
-v
|
||||||
@@ -53,7 +53,7 @@ https://github.com/XIU2/CloudflareSpeedTest
|
|||||||
|
|
||||||
示例:
|
示例:
|
||||||
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10
|
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10
|
||||||
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p 20 -f "ip.txt" -o "" -dd
|
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -p 20 -f "ip.txt" -o " " -dd
|
||||||
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "ip.txt" -o "result.csv" -dd
|
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "ip.txt" -o "result.csv" -dd
|
||||||
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "C:\abc\ip.txt" -o "C:\abc\result.csv" -dd`
|
CloudflareST.exe -n 500 -t 4 -dn 20 -dt 10 -f "C:\abc\ip.txt" -o "C:\abc\result.csv" -dd`
|
||||||
|
|
||||||
@@ -97,6 +97,9 @@ https://github.com/XIU2/CloudflareSpeedTest
|
|||||||
if ipFile == "" {
|
if ipFile == "" {
|
||||||
ipFile = "ip.txt"
|
ipFile = "ip.txt"
|
||||||
}
|
}
|
||||||
|
if outputFile == " " {
|
||||||
|
outputFile = ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@@ -154,9 +157,9 @@ func main() {
|
|||||||
printResult = len(dateString)
|
printResult = len(dateString)
|
||||||
fmt.Println("\n[信息] IP数量小于显示结果数量,显示结果数量改为IP数量。\n")
|
fmt.Println("\n[信息] IP数量小于显示结果数量,显示结果数量改为IP数量。\n")
|
||||||
}
|
}
|
||||||
fmt.Println("\nIP 地址 \t", "测试次数\t", "成功次数\t", "成功比率\t", "平均延迟\t", "下载速度 (MB/s)")
|
fmt.Printf("%-16s%-5s%-5s%-5s%-6s%-11s\n", "IP 地址", "已发送", "已接收", "丢包率", "平均延迟", "下载速度 (MB/s)")
|
||||||
for i := 0; i < printResult; i++ {
|
for i := 0; i < printResult; i++ {
|
||||||
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])
|
fmt.Printf("%-18s%-8s%-8s%-8s%-10s%-15s\n", dateString[i][0], dateString[i][1], dateString[i][2], dateString[i][3], dateString[i][4], dateString[i][5])
|
||||||
}
|
}
|
||||||
if outputFile != "" {
|
if outputFile != "" {
|
||||||
fmt.Printf("\n完整内容请查看 %v 文件。请按 回车键 或 Ctrl+C 退出。", outputFile)
|
fmt.Printf("\n完整内容请查看 %v 文件。请按 回车键 或 Ctrl+C 退出。", outputFile)
|
||||||
|
|||||||
7
util.go
7
util.go
@@ -23,7 +23,8 @@ type CloudflareIPData struct {
|
|||||||
|
|
||||||
func (cf *CloudflareIPData) getRecvRate() float32 {
|
func (cf *CloudflareIPData) getRecvRate() float32 {
|
||||||
if cf.recvRate == 0 {
|
if cf.recvRate == 0 {
|
||||||
cf.recvRate = float32(cf.pingReceived) / float32(cf.pingCount)
|
pingLost := cf.pingCount - cf.pingReceived
|
||||||
|
cf.recvRate = float32(pingLost) / float32(cf.pingCount)
|
||||||
}
|
}
|
||||||
return cf.recvRate
|
return cf.recvRate
|
||||||
}
|
}
|
||||||
@@ -36,7 +37,7 @@ func ExportCsv(filePath string, data []CloudflareIPData) {
|
|||||||
}
|
}
|
||||||
defer fp.Close()
|
defer fp.Close()
|
||||||
w := csv.NewWriter(fp) //创建一个新的写入文件流
|
w := csv.NewWriter(fp) //创建一个新的写入文件流
|
||||||
w.Write([]string{"IP 地址", "测试次数", "成功次数", "成功比率", "平均延迟", "下载速度 (MB/s)"})
|
w.Write([]string{"IP 地址", "已发送", "已接收", "丢包率", "平均延迟", "下载速度 (MB/s)"})
|
||||||
w.WriteAll(convertToString(data))
|
w.WriteAll(convertToString(data))
|
||||||
w.Flush()
|
w.Flush()
|
||||||
}
|
}
|
||||||
@@ -112,7 +113,7 @@ func (cfs CloudflareIPDataSet) Len() int {
|
|||||||
|
|
||||||
func (cfs CloudflareIPDataSet) Less(i, j int) bool {
|
func (cfs CloudflareIPDataSet) Less(i, j int) bool {
|
||||||
if (cfs)[i].getRecvRate() != cfs[j].getRecvRate() {
|
if (cfs)[i].getRecvRate() != cfs[j].getRecvRate() {
|
||||||
return cfs[i].getRecvRate() > cfs[j].getRecvRate()
|
return cfs[i].getRecvRate() < cfs[j].getRecvRate()
|
||||||
}
|
}
|
||||||
return cfs[i].pingTime < cfs[j].pingTime
|
return cfs[i].pingTime < cfs[j].pingTime
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user