Поиск по этому блогу

пятница, 27 ноября 2015 г.

speedtest у консолі

Так, мабуть всі знають про iperf. Для нього треба щоб була серверна частина та клієнтська. Це не завжди можливо, якщо немає десь у теренах зайвого хоста.

Але всі, або майже всі, знають такий ресурс як http://www.speedtest.net/. Чи можна скористуватись ним не заходячи з браузера на сайт? Виявляється, що можна.

Далі покроково.
Встановлюємо пакет python-pip і вже з pip-у встановлюємо клієнта для http://www.speedtest.net/:
$ sudo aptitude install python-pip
$ sudo pip install speedtest-cli
Оновити клієнта можна завжди так:
$ sudo pip install speedtest-cli --upgrade
Після цього в нас з'явиться скрипт /usr/local/bin/speedtest-cli.
$ speedtest-cli --help
usage: speedtest-cli [-h] [--bytes] [--share] [--simple] [--list]
                     [--server SERVER] [--mini MINI] [--source SOURCE]
                     [--timeout TIMEOUT] [--secure] [--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
  --bytes            Display values in bytes instead of bits. Does not affect
                     the image generated by --share
  --share            Generate and provide a URL to the speedtest.net share
                     results image
  --simple           Suppress verbose output, only show basic information
  --list             Display a list of speedtest.net servers sorted by
                     distance
  --server SERVER    Specify a server ID to test against
  --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
  --version          Show the version number and exit
Скрипт можна запустити без будь-яких параметрів, тоді ми отримаємо тест з найближчого ресурсу (ну або начебто найближчого):
$ speedtest-cli
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Ukrcom Ltd. (aaa.bbb.ccc.ddd)...
Selecting best server based on latency...
Hosted by MIIT (Kiev) [0.00 km]: 1.992 ms
Testing download speed........................................
Download: 680.18 Mbit/s
Testing upload speed..................................................
Upload: 272.63 Mbit/s
Якщо скрипту вказати опцію --bytes то швидкість буде виведено не в бітах, а в байтах (комусь треба?).
Також можна отримати посилання на малюнок до проведеного тесту, використовуємо опцію --share:
$ speedtest-cli --share
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Ukrcom Ltd. (aaa.bbb.ccc.ddd)...
Selecting best server based on latency...
Hosted by x.ua - CDN (Kiev) [0.00 km]: 1.5 ms
Testing download speed........................................
Download: 916.29 Mbit/s
Testing upload speed..................................................
Upload: 358.14 Mbit/s
Share results: http://www.speedtest.net/result/4866524488.png
З опцією --simple скрипт просто видасть мінімум інформації:
$ speedtest-cli --simple
Ping: 1.423 ms
Download: 550.00 Mbit/s
Upload: 258.33 Mbit/s
З опцією --list скрипт виведе список всіх доступних публічних серверів для тестування. З них можна відфільтрувати лише ті які нас цікавлять:
$ speedtest-cli --list | grep Kiev
3230) Life Astelit LLC (Kiev, Ukraine) [0.00 km]
2518) Volia (Kiev, Ukraine) [0.00 km]
 831) JSC Ukrtelecom (Kiev, Ukraine) [0.00 km]
5121) MIIT (Kiev, Ukraine) [0.00 km]
5072) x.ua - CDN (Kiev, Ukraine) [0.00 km]
5477) Lanet Network (Kiev, Ukraine) [0.00 km]
6312) Ipnet (Kiev, Ukraine) [0.00 km]
5884) Adamant Ltd. (Kiev, Ukraine) [0.00 km]
6010) Triolan (Kiev, Ukraine) [0.00 km]
6446) Kyivstar (Kiev, Ukraine) [0.00 km]
5447) Cosmonova (Kiev, Ukraine) [0.00 km]
6195) UnderNet (Kiev, Ukraine) [0.00 km]
6088) Prostonet (Kiev, Ukraine) [0.00 km]
6578) Vega (Farlep-Invest) (Kiev, Ukraine) [0.00 km]
1108) NetAssist (Kiev, Ukraine) [0.00 km]
Відповідно можна провести й тестування не до сервера який буде обрано автоматично, а до сервера який ми вкажемо самі:
$ speedtest-cli --server 6195 --share
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Ukrcom Ltd. (aaa.bbb.ccc.ddd)...
Hosted by UnderNet (Kiev) [0.00 km]: 1.691 ms
Testing download speed........................................
Download: 917.25 Mbit/s
Testing upload speed..................................................
Upload: 359.15 Mbit/s
Share results: http://www.speedtest.net/result/4866536345.png
Ну, а якщо десь у Вас є сервер зі Speedtest Mini то тестування можна провести й до нього, задавши опцію --mini та вказавши відповідний url до сервера:
$ speedtest-cli --mini http://speed.ukrhub.net/
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Ukrcom Ltd. (aaa.bbb.ccc.ddd)...
Hosted by Speedtest Mini (speed.ukrhub.net) [0.00 km]: 8.2 ms
Testing download speed........................................
Download: 787.69 Mbit/s
Testing upload speed..................................................
Upload: 333.48 Mbit/s
Ну і останнє (куди ж без цього?) - поточна версія скрипту:
$ speedtest-cli --version
0.3.4