Всіх вітаю! У даній статті ми поговоримо про бібліотеку speedtest-cli, яка дозволяє виміряти швидкість інтернету у дуже легкий спосіб.
Встановлення
Winodows:
pip install speedtest-cliMacOs:
pip3 install speedtest-cliLinux:
pip install speedtest-cliВизначаємо швидкість інтернету
Отже, імпортуємо бібліотеку:
import speedtestТепер можемо спокійно переходити до справи. Так як ми будемо працювати із сервером, то треба створити відповідний об’єкт, який буде виконувати цю задачу.
У бібліотеці speedtest-cli є клас Speedtest, який им і будемо використовувати для створення об’єкта:
net_test = speedtest.Speedtest()Далі варто вказати додаткові налаштування для пошуку відповідного сервера, з яким наш код буде працювати. Таким налаштуванням є метод get_best_server(), який вказує програмі одразу шукати найкращий сервер для роботи. Під найкращим мається на увазі сервер, який буде мати найменший пінг.
Отже, встановлюємо це налаштування:
net_test.get_best_server()Тепер переходимо до безпосереднього вимірювання швидкості інтернету. Тут є два важливі методи, які й забезпечують виконання усього процесу — це методи download() та upload().
Метод download() вимірює швидкість завантаження, ось як ми його застосували у коді:
download_speed = net_test.download()А метод upload() аналізує швидкість віддачі. Використовуємо його теж:
upload_speed = net_test.upload()Після цього залишається лише вивести отримані дані у консоль. Нам важливі дані про пінг сервера, швидкість завантаження та швидкість віддачі.
Дані про пінг сервера, з яким працював наш код, можна отримати за допомогою властивості results та змінній ping:
ping_info = net_test.results.pingВиводимо усі потрібні параметри у консоль:
print(f"Final result\n"
f"====================\n"
f"Downloading speed: {download_speed}\n"
f"Uploading speed: {upload_speed}\n"
f"Server ping: {ping_info}")Отримали такий результат:
Final result
====================
Downloading speed: 188627163.89115825
Uploading speed: 230870323.01953307
Server ping: 13.021Це, звісно, добре, але ці дані треба конвертувати в мегабіти на секунду, так як швидкість інтернету вимірюється саме у цій величині.
Імпортуємо бібліотеку math:
import mathДодаємо рядки до нашого коду, який би конвертував наш результат:
download_conversion = download_speed / math.pow(10, 6)
upload_conversion = upload_speed / math.pow(10, 6)Далі вказуємо наші конвертовані значення у коді:
print(f"Final result\n"
f"====================\n"
f"Downloading speed: {download_conversion:.2f}\n"
f"Uploading speed: {upload_conversion:.2f}\n"
f"Server ping: {ping_info}")Отримуємо остаточний результат:
Final result
====================
Downloading speed: 264.11
Uploading speed: 261.27
Server ping: 10.283Отже, програма готова і код повністю працює. Загалом все пройшло успішно.
Ось повний код нашої програми:
import speedtest
import math
net_test = speedtest.Speedtest()
net_test.get_best_server()
download_speed = net_test.download()
upload_speed = net_test.upload()
ping_info = net_test.results.ping
download_conversion = download_speed / math.pow(10, 6)
upload_conversion = upload_speed / math.pow(10, 6)
print(f"Final result\n"
f"====================\n"
f"Downloading speed: {download_conversion:.2f}\n"
f"Uploading speed: {upload_conversion:.2f}\n"
f"Server ping: {ping_info}")Даний код програми для зручності, щоб можна було побачити повну картину.
Висновок
У цій новій статті ми познайомилися із бібліотекою для вимірювання швидкості інтернету speedtest-cli та реалізували саме вимірювання за допомогою мови Python. Всім дякую за увагу!