Command Line Interface and pure Go API to Test Internet Speed using speedtest.net
You can speedtest 2x faster than speedtest.net with almost the same result.
This fork allows abstracts the implementation of the speed test to a package so it can be used by other go programs.
Inspired by sivel/speedtest-cli
go get github.com/cbergoon/speedtest-go
go install github.com/cbergoon/speedtest-go
$ speedtest --help
usage: download [<flags>]
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
-l, --list Show available speedtest.net servers
-s, --server=SERVER Select server id to speedtest
-t, --timeout=TIMEOUT Define timeout seconds. Default: 10 sec
--version Show application version.
$ speedtest
Testing From IP: 124.27.199.165 (Fujitsu) [34.9769, 138.3831]
Target Server: [6691] 9.03km Shizuoka (Japan) by sudosan
latency: 39.436061ms
Download Test: ................
Upload Test: ................
Download: 73.30 Mbit/s
Upload: 35.26 Mbit/s
$ speedtest --list
Testing From IP: 124.27.199.165 (Fujitsu) [34.9769, 138.3831]
[6691] 9.03km Shizuoka (Japan) by sudosan
[6087] 120.55km Fussa-shi (Japan) by Allied Telesis Capital Corporation
[6508] 125.44km Yokohama (Japan) by at2wn
[6424] 148.23km Tokyo (Japan) by Cordeos Corp.
[6492] 153.06km Sumida (Japan) by denpa893
[7139] 192.63km Tsukuba (Japan) by SoftEther Corporation
[6368] 194.83km Maibara (Japan) by gatolabo
[6463] 220.39km Kusatsu (Japan) by j416dy
[6766] 232.54km Nomi (Japan) by JAIST(ino-lab)
[6476] 265.10km Osaka (Japan) by rxy (individual)
[6477] 268.94km Sakai (Japan) by satoweb
...
$ speedtest --server 6691 --server 6087
Testing From IP: 124.27.199.165 (Fujitsu) [34.9769, 138.3831]
Target Server: [6691] 9.03km Shizuoka (Japan) by sudosan
Latency: 23.612861ms
Download Test: ................
Upload Test: ........
Target Server: [6087] 120.55km Fussa-shi (Japan) by Allied Telesis Capital Corporation
Latency: 38.694699ms
Download Test: ................
Upload Test: ................
[6691] Download: 65.82 Mbit/s, Upload: 27.00 Mbit/s
[6087] Download: 72.24 Mbit/s, Upload: 29.56 Mbit/s
Download Avg: 69.03 Mbit/s
Upload Avg: 28.28 Mbit/s
Speedtest-go is a great tool because of following 2 reasons:
- Testing time is the SHORTEST compare to speedtest.net and sivel/speedtest-cli, especially about 2x faster then speedtest.net.
- Result is MORE CLOSE to speedtest.net than speedtest-cli.
Following data is summarized.
distance = distance to testing server
- 0 - 1000(km) ≒ domestic
- 1000 - 8000(km) ≒ same region
- 8000 - 20000(km) ≒ really far!
- 20000km is the half of the circumference of our planet.
distance (km) | speedtest.net | speedtest-go | speedtest-cli |
---|---|---|---|
0 - 1000 | 92.12 | 91.21 | 70.27 |
1000 - 8000 | 66.45 | 65.51 | 56.56 |
8000 - 20000 | 11.84 | 9.43 | 11.87 |
distance (km) | speedtest.net | speedtest-go | speedtest-cli |
---|---|---|---|
0 - 1000 | 65.56 | 47.58 | 36.16 |
1000 - 8000 | 58.02 | 54.74 | 26.78 |
8000 - 20000 | 5.20 | 8.32 | 2.58 |
distance (km) | speedtest.net | speedtest-go | speedtest-cli |
---|---|---|---|
0 - 1000 | 45.03 | 22.84 | 24.46 |
1000 - 8000 | 44.89 | 24.45 | 28.52 |
8000 - 20000 | 49.64 | 34.08 | 41.26 |