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

Прекрасний цифровий світ

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

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

  • Книги з Google Play можна експортувати та використовувати у Gemini Notebook

    Нещодавно компанія Google заявила про те, що додала до застосунку Gemini Notebook (колишній NotebookLM) можливість експортувати електронні книги з Google Play.

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

    It
  • Клас Timer у модулі threading в Python

    У цій статті ми розглянемо, поняття потоків і таймерів та їх особливості. Крім того, ми навчимося створювати власні кастомні таймери, які будуть виконувати код саме так, як нам треба.

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

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

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

  • Чому розробникам варто вчити філософію

    Для розробника це може здатися нелогічним, але здатність створювати чіткі моделі для завдань, які ви хочете розв’язати, і розуміти, навіщо, перш ніж почати працювати над тим, як це зробити, стає все більш важливою навичкою — особливо в епоху штучного інтелекту.

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

    Кодування
  • Яким чином пули з’єднань покращують роботу застосунку?

    Початкова швидкість передачі даних може бути досить низькою, поки TCP "зрозуміє", яка швидкість є оптимальною. У випадку пулу з'єднань, вже встановлені з'єднання можуть використовувати максимальну швидкість передачі, оскільки

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

    Програмування
  • PSA-системи: як сервісний бізнес автоматизує операційку

    Агенції, IT-команди, консалтингові та дизайнерські студії живуть у схожому ритмі: десятки проєктів одночасно, комунікація з клієнтами, облік часу, рахунки, планування ресурсів — і все це треба якось координувати.

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

    Бізнес

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

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

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

  • Чому розробникам варто вчити філософію

    Для розробника це може здатися нелогічним, але здатність створювати чіткі моделі для завдань, які ви хочете розв’язати, і розуміти, навіщо, перш ніж почати працювати над тим, як це зробити, стає все більш важливою навичкою — особливо в епоху штучного інтелекту.

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

    Кодування
  • Яким чином пули з’єднань покращують роботу застосунку?

    Початкова швидкість передачі даних може бути досить низькою, поки TCP "зрозуміє", яка швидкість є оптимальною. У випадку пулу з'єднань, вже встановлені з'єднання можуть використовувати максимальну швидкість передачі, оскільки

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

    Програмування
  • PSA-системи: як сервісний бізнес автоматизує операційку

    Агенції, IT-команди, консалтингові та дизайнерські студії живуть у схожому ритмі: десятки проєктів одночасно, комунікація з клієнтами, облік часу, рахунки, планування ресурсів — і все це треба якось координувати.

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

    Бізнес