python如何实现网络测试,了解一下speedtest-cli…

python如何实现网络测试,了解一下speedtest-cli...

它是一款面向开发人员的互联网连接测量工具。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!

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » python如何实现网络测试,了解一下speedtest-cli…