python如何實現網路測試,瞭解一下speedtest-cli...

来源:https://www.cnblogs.com/lwsbc/archive/2022/04/25/16191801.html
-Advertisement-
Play Games

第二話來了 這一章的知識緊接上一章,零基礎的小伙伴可以從上 一章學起來。當然,你也可以收藏起來慢慢學習,學習是不可操之過急的啦… 列表 Python學習交流Q群:906715085### print(" 創建列表 "); list1 = ['JAVA', 'Hello', 'Python', 'VS ...


它是一款面向開發人員的互聯網連接測量工具。Speedtest CLI 為命令行帶來 Speedtest 背後的可信技術和全球伺服器網路。

【閱讀全文】

Speedtest CLI 專為軟體開發人員、系統管理員和電腦愛好者等打造,是 Ookla® 提供技術支持的首款正式 Linux 本機 Speedtest 應用程式。

Speedtest CLI是使用python語言開發的,不僅可以直接在命令行運行。也可以作為python模塊在python IDE中直接調用。

首先,看一下如何在python應用中進行調用,使用pip直接安裝。

pip install speedtest-cli

將該模塊直接導入到我們當前的代碼塊中。

import speedtest as spt

創建網路測試對象

spd = spt.Speedtest()

列印當前可用於測試的伺服器列表

from pprint import pprint

pprint(spd.get_servers())

# {721.5702755019188: [{'cc': 'CN',
#                       'country': 'China',
#                       'd': 721.5702755019188,
#                       'host': 'speedtest1.he.chinamobile.com:8080',
#                       'id': '41912',
#                       'lat': '38.0428',
#                       'lon': '114.5149',
#                       'name': '石家莊',
#                       'sponsor': 'China Mobile Hebei Co., Ltd',
#                       'url': 'http://speedtest1.he.chinamobile.com:8080/speedtest/upload.php'}],
#  776.2668436087947: [{'cc': 'CN',
#                       'country': 'China',
#                       'd': 776.2668436087947,
#                       'host': '5gtest.shangdu.com:8080',
#                       'id': '36646',
#                       'lat': '34.7466',
#                       'lon': '113.6253',
#                       'name': 'Zhengzhou',
#                       'sponsor': 'China Unicom HeNan 5G',
#                       'url': 'http://5gtest.shangdu.com:8080/speedtest/upload.php'}],
#  1051.7168853741107: [{'cc': 'MN',
#                        'country': 'Mongolia',
#                        'd': 1051.7168853741107,
#                        'host': 'speedtest.gemnet.mn:8080',
#                        'id': '2853',
#                        'lat': '47.9200',
#                        'lon': '106.9200',
#                        'name': 'Ulaanbaatar',
#                        'sponsor': 'Gemnet LLC',
#                        'url': 'http://speedtest.gemnet.mn:8080/speedtest/upload.php'},
#                       {'cc': 'MN',
#                        'country': 'Mongolia',
#                        'd': 1051.7168853741107,
#                        'host': 'speedtest1.kewiko.mn:8080',
#                        'id': '30772',
#                        'lat': '47.9200',
#                        'lon': '106.9200',
#                        'name': 'Ulaanbaatar',
#                        'sponsor': 'Kewiko LLC',
#                        'url': 'http://speedtest1.kewiko.mn:8080/speedtest/upload.php'}],
#  1339.1170164273938: [{'cc': 'CN',
#                        'country': 'China',
#                        'd': 1339.1170164273938,
#                        'host': '5gnanjing.speedtest.jsinfo.net:8080',
#                        'id': '26352',
#                        'lat': '32.0500',
#                        'lon': '118.7667',
#                        'name': 'Nanjing',
#                        'sponsor': 'China Telecom JiangSu 5G',
#                        'url': 'http://5gnanjing.speedtest.jsinfo.net:8080/speedtest/upload.php'}],
#  1340.7612716854985: [{'cc': 'CN',
#                        'country': 'China',
#                        'd': 1340.7612716854985,
#                        'host': 'speedtest02.js165.com:8080',
#                        'id': '13704',
#                        'lat': '32.0602',
#                        'lon': '118.7968',
#                        'name': 'Nanjing',
#                        'sponsor': 'China Unicom',
#                        'url': 'http://speedtest02.js165.com:8080/speedtest/upload.php'}],
#  1381.9129755930571: [{'cc': 'CN',
#                        'country': 'China',
#                        'd': 1381.9129755930571,
#                        'host': 'speedtest.zjmobile.com:8080',
#                        'id': '17320',
#                        'lat': '32.2069',
#                        'lon': '119.4490',
#                        'name': 'ZhenJiang',
#                        'sponsor': 'China Mobile JiangSu 5G',
#                        'url': 'http://speedtest.zjmobile.com:8080/speedtest/upload.php'}],
#  1489.08809618835: [{'cc': 'RU',
#                      'country': 'Russia',
#                      'd': 1489.08809618835,
#                      'host': 'speedtest-ude.edinos.ru:8080',
#                      'id': '36254',
#                      'lat': '51.8336',
#                      'lon': '107.5840',
#                      'name': 'Ulan-Ude',
#                      'sponsor': 'EDINOS',
#                      'url': 'http://speedtest-ude.edinos.ru:8080/speedtest/upload.php'}],
#  1542.170901504592: [{'cc': 'RU',
#                       'country': 'Russia',
#                       'd': 1542.170901504592,
#                       'host': 'speedtest.bteleport.ru:8080',
#                       'id': '18543',
#                       'lat': '52.2757',
#                       'lon': '104.3087',
#                       'name': 'Irkutsk',
#                       'sponsor': 'Baikal Teleport',
#                       'url': 'http://speedtest.bteleport.ru:8080/speedtest/upload.php'},
#                      {'cc': 'RU',
#                       'country': 'Russia',
#                       'd': 1542.170901504592,
#                       'host': 'speedtest-irkutsk.fttb.beeline.ru:8080',
#                       'id': '31472',
#                       'lat': '52.2757',
#                       'lon': '104.3087',
#                       'name': 'Irkutsk',
#                       'sponsor': 'Beeline',
#                       'url': 'http://speedtest-irkutsk.fttb.beeline.ru:8080/speedtest/upload.php'}]}

獲取當前最佳的測試伺服器

spd.get_best_server()

print('測試開始,請稍等...')

獲得當前的下載速度

download = int(spd.download() / 1024 / 1024)

獲得當前的上傳速度

upload = int(spd.upload() / 1024 / 1024)

print(f'當前下載速度為:{str(download)} MB/s')

print(f'當前上傳速度為:{str(upload)} MB/s')

print('測試已完成!')

列印出最終的返回結果

測試開始,請稍等...
當前下載速度為:12 MB/s
當前上傳速度為:13 MB/s
測試已完成!

file

【往期精彩】

模型已經寫好了,怎麼表白就看你的了!

如何實現根據照片獲取地理位置及如何防禦照片泄漏地理位置!

又是櫻花盛開的季節,使用小烏龜來畫一顆櫻花樹吧!

Python 讀取PDF文件為文本字元並轉換為音頻...

python 獲取最新房價信息-以北京房價為例

辦公自動化:Image圖片轉換成PDF文檔存儲...

python做一個微型美顏圖片處理器,十行代碼即可完成...

用python做一個文本翻譯器,自動將中文翻譯成英文,超方便的!

小王,給這2000個客戶發一下節日祝福的郵件...

python 一行命令開啟網路間的文件共用...

PyQt5 批量刪除 Excel 重覆數據,多個文件、自定義重覆項一鍵刪除...

再見XShell,這款國人開源的終端命令行工具更nice!

歡迎關註作者公眾號【Python 集中營】,專註於後端編程,每天更新技術乾貨,不定時分享各類資料!
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 有了《系統架構的11條原則》,真正到設計階段還有另外11個考慮。 系統正確性 考慮一:負負得正 假如我們看到某個代碼,明顯有邏輯錯誤,想隨手改改。你就要考慮一件事情:這段明顯有問題的代碼為什麼線上上運行著沒有人來報bug?有一種正常運行叫做【負負得正】。如果把錯誤的邏輯改對了反而可能引起問題。 這種 ...
  • 組織管理模塊屬於SaaS產品非常底層的架構,非常考驗架構能力,幾乎所有的業務場景都需要應用組織數據,背後反應的是企業決策層的經營戰略和財務戰略,因此需要掌握一定的企業管理知識和財務知識,如果能夠掌握組織管理的概念和要點,對設計好SaaS產品幫助巨大。 ...
  • 如果軟體系統存在持續的迭代周期,那麼其中業務、技術、架構的複雜性都會直線拉升,其相應的開發難度也會提高,隨之而來的壓力會持續在開發和測試之間來回橫跳。 ...
  • 鑒於上一篇中最後三個問題: 1、上述程式是否能進行優化(比如功能相同的) 2、創建三個3個實例,用了3個語句,能否建一個函數,只輸入一個數n,就自動創建n個實例?同時,每個實例的num_times隨機,(n比較大時,num_times應該比較小) 3、當實現上述功能後,程式運行,只輸入一個參數(創建 ...
  • L1-081 今天我要贏 #include <iostream> using namespace std; int main() { cout << "I'm gonna win! Today!\n2022-04-23"; } 2018 年我們曾經出過一題,是輸出“2018 我們要贏”。今年是 20 ...
  • 隨著短視頻的大火,不僅可以給人們帶來娛樂,還有熱點新聞時事以及各種知識,刷短視頻也逐漸成為了日常生活的一部分。本文以一個簡單的小例子,簡述如何通過Pyhton依托Selenium來爬取短視頻,僅供學習分享使用,如有不足之處,還請指正。 ...
  • OO第二單元電梯總結 架構模式 Hw5, Hw6, Hw7三次作業架構基本沒有巨大變化,屬於增量的疊加開發 hw5 一級生產者消費者模型with策略類分離 第一次作業, 我做了兩種架構的嘗試, 寫了: 調度線程祭天型 單托盤 帶調度器線程的兩級托盤 在嘗試寫了兩種架構的基礎上, 我分析了一下兩種架構 ...
  • 今天的是Python第三話,前面的知識點給大家放在上面了,零基礎的小伙伴可以自己動手領取,學好Python的基礎知識對我們後期 去實現Python案例幫助很大,知其然才能更好解決問題,話不多說,直接開始了。 函數 Python學習交流Q群:906715085#### print(" 定義函數 "); ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...