Друкарня від WE.UA

Вимірювання швидкості інтернету в Python

Всіх вітаю! У даній статті ми поговоримо про бібліотеку speedtest-cli, яка дозволяє виміряти швидкість інтернету у дуже легкий спосіб.

Встановлення

Winodows:

pip install speedtest-cli

MacOs:

pip3 install speedtest-cli

Linux:

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. Всім дякую за увагу!

Статті про вітчизняний бізнес та цікавих людей:

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Magnifique numérique
Magnifique numérique@nocturnal_reader

Нічний читач

57Довгочити
1.1KПерегляди
18Підписники
Підтримати
На Друкарні з 14 липня 2025

Більше від автора

  • Список різноманітних бібліотек у Python

    Всіх вітаю! Сьогодні хочу поділитися великим списком бібліотек у Python для різного призначення та потреб:https://github.com/vinta/awesome-pythonТут багато цікавих бібліотек зібрано за сферами їхньго призначення.

    Теми цього довгочиту:

    It
  • Roadmap — ваш путівник до поставлених цілей.

    Сайт Roadmap вміщує у собі багато путівників до великої кількості професій та сфер, у яких доволі чітко описано, що саме потрібно для повноцінного вивчення того чи іншого предмету зацікавленості.

    Теми цього довгочиту:

    It
  • Клас itemgetter() у модулі operator

    Всіх вітаю! У даній статті ми продовжимо тему спеціальних властивостей словників у Python. На цей раз ми поговоримо про модуль operator та його клас itemgetter(), яка дозволяє працювати зі списками та словниками у Python.

    Теми цього довгочиту:

    Програмування

Це також може зацікавити:

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити: