Друкарня від 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

Нічний читач

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

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

  • Метод find() у Python

    У цій статті ми розберемо призначення та застосування методу find() у Python.

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

    Програмування
  • Новина блогу Magnifique numérique

    У проєкту Magnifique numérique тепер з'явився власний сайт, де будуть викладатися усі нові статті.

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

    It

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

  • Naughty Ai

    Naughty AI is a technology company focused on creating interactive AI-powered experiences that make digital communication more engaging, personalized, and accessible.

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

    Ai
  • Будемо робити застосунок для обліку фінансів

    Знайома вам ситуація, коли кошти, які мали бути витрачені на велику покупку якимось чином зникали до моменту цієї самої покупки? Болісний момент, який може стати тригером, що приведе вас до кращого життя. Теоретично. Але щоб це сталося, потрібно якось вести історію витрат.

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

    Розробка

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

Дякую “Друже” за статтю!, Саме те, що потрібно для бистрого тесту 🤝

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

  • Naughty Ai

    Naughty AI is a technology company focused on creating interactive AI-powered experiences that make digital communication more engaging, personalized, and accessible.

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

    Ai
  • Будемо робити застосунок для обліку фінансів

    Знайома вам ситуація, коли кошти, які мали бути витрачені на велику покупку якимось чином зникали до моменту цієї самої покупки? Болісний момент, який може стати тригером, що приведе вас до кращого життя. Теоретично. Але щоб це сталося, потрібно якось вести історію витрат.

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

    Розробка