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!