https://github.com/sivel/speedtest-cli
  
  
    Command line interface for testing internet bandwidth using speedtest.net 
    https://github.com/sivel/speedtest-cli
  
python python-library python-script speedtest
        Last synced: 6 months ago 
        JSON representation
    
Command line interface for testing internet bandwidth using speedtest.net
- Host: GitHub
- URL: https://github.com/sivel/speedtest-cli
- Owner: sivel
- License: apache-2.0
- Created: 2012-09-10T19:17:53.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2024-07-20T16:58:27.000Z (over 1 year ago)
- Last Synced: 2025-05-11T10:08:35.975Z (6 months ago)
- Topics: python, python-library, python-script, speedtest
- Language: Python
- Size: 305 KB
- Stars: 13,774
- Watchers: 304
- Forks: 1,923
- Open Issues: 71
- 
            Metadata Files:
            - Readme: README.rst
- Contributing: CONTRIBUTING.md
- License: LICENSE
 
Awesome Lists containing this project
- awesome-python-applications - Repo - line interface for testing Internet bandwidth using [speedtest.net](https://speedtest.net). `(console)` (<a id="tag-internet" href="#tag-internet">Internet</a>)
- awesome - speedtest-cli
- awesome-cli-apps - speedtest-cli - Test internet bandwidth using speedtest.net. (Utilities / Internet Speedtest)
- awesome-starred-test - sivel/speedtest-cli - Command line interface for testing internet bandwidth using speedtest.net (Python)
- awesome-starts - sivel/speedtest-cli - Command line interface for testing internet bandwidth using speedtest.net (python)
- starred - sivel/speedtest-cli - Command line interface for testing internet bandwidth using speedtest.net (Python)
- links - speedtest-cli - Speedtest from a command line. (Command Line Tools)
- fucking-awesome-cli-apps - speedtest-cli - Test internet bandwidth using speedtest.net. (Utilities / Internet Speedtest)
- awesome-python-applications - Repo - cli)) Command-line interface for testing Internet bandwidth using [speedtest.net](https://speedtest.net). `(console)` (<a id="tag-internet" href="#tag-internet">Internet</a>)
- awesome-hacking-lists - sivel/speedtest-cli - Command line interface for testing internet bandwidth using speedtest.net (Python)
- awesome-starred - sivel/speedtest-cli - Command line interface for testing internet bandwidth using speedtest.net (python)
- jimsghstars - sivel/speedtest-cli - Command line interface for testing internet bandwidth using speedtest.net (Python)
- awesomeLibrary - speedtest-cli - Command line interface for testing internet bandwidth using speedtest.net (语言资源库 / python)
- stars - sivel/speedtest-cli - Command line interface for testing internet bandwidth using speedtest.net (Python)
- stars - sivel/speedtest-cli - Command line interface for testing internet bandwidth using speedtest.net (Python)
- StarryDivineSky - sivel/speedtest-cli - cli是一个使用speedtest.net测试互联网带宽的命令行工具。它无需安装Flash,使用Python编写,可以测量下载和上传速度。该工具通过连接到speedtest.net服务器并模拟数据传输来评估带宽。它提供简单的文本输出,方便在脚本中使用。项目支持Python 2.4-3.x,并提供了详细的安装和使用说明。你可以通过pip安装,并使用`speedtest-cli`命令运行。它能显示ping延迟、下载速度、上传速度,以及连接的服务器信息。speedtest-cli是一个轻量级、快速且易于使用的网络速度测试工具,适合开发者和系统管理员使用。项目维护良好,并持续更新。 (网络信息服务 / 网络协议)
README
          speedtest-cli
=============
Command line interface for testing internet bandwidth using
speedtest.net
.. image:: https://img.shields.io/pypi/v/speedtest-cli.svg
        :target: https://pypi.python.org/pypi/speedtest-cli/
        :alt: Latest Version
.. image:: https://img.shields.io/travis/sivel/speedtest-cli.svg
        :target: https://pypi.python.org/pypi/speedtest-cli/
        :alt: Travis
.. image:: https://img.shields.io/pypi/l/speedtest-cli.svg
        :target: https://pypi.python.org/pypi/speedtest-cli/
        :alt: License
Versions
--------
speedtest-cli works with Python 2.4-3.7
.. image:: https://img.shields.io/pypi/pyversions/speedtest-cli.svg
        :target: https://pypi.python.org/pypi/speedtest-cli/
        :alt: Versions
Installation
------------
pip / easy\_install
~~~~~~~~~~~~~~~~~~~
::
    pip install speedtest-cli
or
::
    easy_install speedtest-cli
Github
~~~~~~
::
    pip install git+https://github.com/sivel/speedtest-cli.git
or
::
    git clone https://github.com/sivel/speedtest-cli.git
    cd speedtest-cli
    python setup.py install
Just download (Like the way it used to be)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
::
    wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
    chmod +x speedtest-cli
or
::
    curl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
    chmod +x speedtest-cli
Usage
-----
::
    $ speedtest-cli -h
    usage: speedtest-cli [-h] [--no-download] [--no-upload] [--single] [--bytes]
                         [--share] [--simple] [--csv]
                         [--csv-delimiter CSV_DELIMITER] [--csv-header] [--json]
                         [--list] [--server SERVER] [--exclude EXCLUDE]
                         [--mini MINI] [--source SOURCE] [--timeout TIMEOUT]
                         [--secure] [--no-pre-allocate] [--version]
    Command line interface for testing internet bandwidth using speedtest.net.
    --------------------------------------------------------------------------
    https://github.com/sivel/speedtest-cli
    optional arguments:
      -h, --help            show this help message and exit
      --no-download         Do not perform download test
      --no-upload           Do not perform upload test
      --single              Only use a single connection instead of multiple. This
                            simulates a typical file transfer.
      --bytes               Display values in bytes instead of bits. Does not
                            affect the image generated by --share, nor output from
                            --json or --csv
      --share               Generate and provide a URL to the speedtest.net share
                            results image, not displayed with --csv
      --simple              Suppress verbose output, only show basic information
      --csv                 Suppress verbose output, only show basic information
                            in CSV format. Speeds listed in bit/s and not affected
                            by --bytes
      --csv-delimiter CSV_DELIMITER
                            Single character delimiter to use in CSV output.
                            Default ","
      --csv-header          Print CSV headers
      --json                Suppress verbose output, only show basic information
                            in JSON format. Speeds listed in bit/s and not
                            affected by --bytes
      --list                Display a list of speedtest.net servers sorted by
                            distance
      --server SERVER       Specify a server ID to test against. Can be supplied
                            multiple times
      --exclude EXCLUDE     Exclude a server from selection. Can be supplied
                            multiple times
      --mini MINI           URL of the Speedtest Mini server
      --source SOURCE       Source IP address to bind to
      --timeout TIMEOUT     HTTP timeout in seconds. Default 10
      --secure              Use HTTPS instead of HTTP when communicating with
                            speedtest.net operated servers
      --no-pre-allocate     Do not pre allocate upload data. Pre allocation is
                            enabled by default to improve upload performance. To
                            support systems with insufficient memory, use this
                            option to avoid a MemoryError
      --version             Show the version number and exit
Python API
----------
See the `wiki `_.
Inconsistency
-------------
It is not a goal of this application to be a reliable latency reporting tool.
Latency reported by this tool should not be relied on as a value indicative of ICMP
style latency. It is a relative value used for determining the lowest latency server
for performing the actual speed test against.
There is the potential for this tool to report results inconsistent with Speedtest.net.
There are several concepts to be aware of that factor into the potential inconsistency:
1. Speedtest.net has migrated to using pure socket tests instead of HTTP based tests
2. This application is written in Python
3. Different versions of Python will execute certain parts of the code faster than others
4. CPU and Memory capacity and speed will play a large part in inconsistency between
   Speedtest.net and even other machines on the same network
Issues relating to inconsistencies will be closed as wontfix and without
additional reason or context.