From 6cb94db59e70c1ecaa34be49b0dbd78a7694e8aa Mon Sep 17 00:00:00 2001 From: xiu2 <54703944+XIU2@users.noreply.github.com> Date: Sat, 27 Nov 2021 23:21:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E6=B5=8B=E9=80=9F=E4=B9=9F=E4=BC=9A=E4=BD=BF=E7=94=A8=20-tp=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=8C=87=E5=AE=9A=E7=9A=84=E7=AB=AF=E5=8F=A3?= =?UTF-8?q?;=20=E8=B0=83=E6=95=B4=20=E4=B8=8B=E8=BD=BD=E6=B5=8B=E9=80=9F?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9D=A1=E6=95=B0=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- main.go | 6 +++--- task/download.go | 7 +++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8576a8e..d6c28c1 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ https://github.com/XIU2/CloudflareSpeedTest -t 4 延迟测速次数;单个 IP 延迟测速次数,为 1 时将过滤丢包的IP,TCP协议;(默认 4) -tp 443 - 延迟测速端口;延迟测速 TCP 协议的端口;(默认 443) + 指定测速端口;延迟测速/下载测速时使用的端口;(默认 443) -dn 10 下载测速数量;延迟测速并排序后,从最低延迟起下载测速的数量;(默认 10) -dt 10 diff --git a/main.go b/main.go index d512311..9adad0d 100644 --- a/main.go +++ b/main.go @@ -30,7 +30,7 @@ https://github.com/XIU2/CloudflareSpeedTest -t 4 延迟测速次数;单个 IP 延迟测速次数,为 1 时将过滤丢包的IP,TCP协议;(默认 4) -tp 443 - 延迟测速端口;延迟测速 TCP 协议的端口;(默认 443) + 指定测速端口;延迟测速/下载测速时使用的端口;(默认 443) -dn 10 下载测速数量;延迟测速并排序后,从最低延迟起下载测速的数量;(默认 10) -dt 10 @@ -63,7 +63,7 @@ https://github.com/XIU2/CloudflareSpeedTest var minDelay, maxDelay, downloadTime int flag.IntVar(&task.Routines, "n", 200, "测速线程数量") flag.IntVar(&task.PingTimes, "t", 4, "延迟测速次数") - flag.IntVar(&task.TCPPort, "tp", 443, "延迟测速端口") + flag.IntVar(&task.TCPPort, "tp", 443, "指定测速端口") flag.IntVar(&maxDelay, "tl", 9999, "平均延迟上限") flag.IntVar(&minDelay, "tll", 0, "平均延迟下限") flag.IntVar(&downloadTime, "dt", 10, "下载测速时间") @@ -134,7 +134,7 @@ func endPrint() { func checkUpdate() { timeout := 10 * time.Second client := http.Client{Timeout: timeout} - res, err := client.Get("https://api.xiuer.pw/ver/cloudflarespeedtest.txt") + res, err := client.Get("https://api.xiu2.xyz/ver/cloudflarespeedtest.txt") if err != nil { return } diff --git a/task/download.go b/task/download.go index a16a4bd..33620b6 100644 --- a/task/download.go +++ b/task/download.go @@ -63,6 +63,9 @@ func TestDownloadSpeed(ipSet utils.PingDelaySet) (speedSet utils.DownloadSpeedSe if len(ipSet) < TestCount || MinSpeed > 0 { // 如果IP数组长度(IP数量) 小于下载测速数量(-dn),则次数修正为IP数 testNum = len(ipSet) } + if testNum < TestCount { + TestCount = testNum + } fmt.Printf("开始下载测速(下载速度下限:%.2f MB/s,下载测速数量:%d,下载测速队列:%d):\n", MinSpeed, TestCount, testNum) bar := utils.NewBar(TestCount) @@ -88,9 +91,9 @@ func TestDownloadSpeed(ipSet utils.PingDelaySet) (speedSet utils.DownloadSpeedSe } func getDialContext(ip *net.IPAddr) func(ctx context.Context, network, address string) (net.Conn, error) { - fakeSourceAddr := ip.String() + ":443" + fakeSourceAddr := ip.String() + ":" + fmt.Sprintf("%d", TCPPort) if IPv6 { // IPv6 需要加上 [] - fakeSourceAddr = "[" + ip.String() + "]:443" + fakeSourceAddr = "[" + ip.String() + "]:" + fmt.Sprintf("%d", TCPPort) } return func(ctx context.Context, network, address string) (net.Conn, error) { return (&net.Dialer{}).DialContext(ctx, network, fakeSourceAddr)