Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Yet another unofficial speedtest.net client cli interface

lmc999/SpeedTest

 
 

Repository files navigation

Build Status

SpeedTest++

Yet another unofficial speedtest.net client cli interface

It supports the new (undocumented) raw TCP protocol for better accuracy.

Features

  1. Best server discovery based on speed and distance from you.

  2. Line type discovery to select the best test profile based on your line speed.

  3. Aggressive multi-threading program in order to saturate your bandwidth quickly.

  4. Test supported: Ping / Jitter / Download speed / Upload speed / Packet loss (UDP).

  5. Provide a URL to the speedtest.net share results image using option --share

  6. Network interface binding support - specify which network interface to use for testing (e.g., eth0, tun0, wg0)

Installation

Requirements

  1. A modern C++ compiler
  2. cmake
  3. libcurl
  4. libssl
  5. libxml2

On Mac OS X

$ brew install cmake
$ cd cmake_build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make install

On Ubuntu/Debian

$ sudo apt-get install build-essential libcurl4-openssl-dev libxml2-dev libssl-dev cmake
$ git clone https://github.com/lmc999/SpeedTest
$ cd SpeedTest
$ cmake -DCMAKE_BUILD_TYPE=Release .
$ sudo make install

On OpenSuse

$ sudo zypper install cmake gcc-c++ libcurl-devel libxml2-devel libopenssl-devel git
$ git clone https://github.com/lmc999/SpeedTest
$ cd SpeedTest
$ cmake -DCMAKE_BUILD_TYPE=Release .
$ sudo make install

Usage

$ ./SpeedTest --help
SpeedTest++ version 1.15
Speedtest.net command line interface
Info: https://github.com/taganaka/SpeedTest
Author: Francesco Laurita <[email protected]>

Usage: ./SpeedTest  [--latency] [--quality] [--download] [--upload] [--share] [--help]
      [--test-server host:port] [--interface interface] [--output verbose|text|json]
optional arguments:
  --help                      Show this message and exit
  --latency                   Perform latency test only
  --quality                   Perform quality test only. It includes latency test
  --download                  Perform download test only. It includes latency test
  --upload                    Perform upload test only. It includes latency test
  --share                     Generate and provide a URL to the speedtest.net share results image
  --insecure                  Skip SSL certificate verify (Useful for Embedded devices)
  --test-server host:port     Run speed test against a specific server
  --quality-server host:port  Run line quality test against a specific server
  --interface interface       Bind to specified network interface (e.g., tun0, eth0)
  --output verbose|text|json  Set output type. Default: verbose

Examples

# Run a complete speed test
./SpeedTest

# Test using a specific network interface (requires root/sudo)
sudo ./SpeedTest --interface tun0

# Test download speed only through VPN interface
sudo ./SpeedTest --download --interface wg0

# Test with JSON output through specific interface
sudo ./SpeedTest --interface eth1 --output json

# Test latency only through tailscale
sudo ./SpeedTest --latency --interface tailscale0

Note: The --interface option requires root privileges (or CAP_NET_RAW capability) to bind to a specific network interface.

License

SpeedTest++ is available as open source program under the terms of the MIT License.

About

Yet another unofficial speedtest.net client cli interface

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 91.1%
  • C 5.7%
  • CMake 2.6%
  • Dockerfile 0.6%