鱼C论坛

 找回密码
 立即注册
查看: 19195|回复: 58

[技术交流] 测网速?还是自己写程序测得更准确!

[复制链接]
发表于 2021-8-19 16:08:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2021-8-25 08:24 编辑

在线视频:



估计很多童鞋都曾用网页在线测网速,可以是可以,但很不程序员!

今天我就用 python 手写一个网速测试的小工具,不用担心 IP 地址泄露~

先来看成果,单击“开始测试”按钮,程序就会帮我们测试当前网速~

包括下载速度和上传速度,言简意赅,欢迎童鞋们自测发弹幕比一比!

源码放在论坛啦,链接见简介。

废话不多说了,进入主题,一步一步带大家梳理程序。

首先我们安装一个库:

  1. pip install speedtest-cli
复制代码

有了它我们就不用自己去 Ping,不用依靠网络浏览器,就可以在本机测量下载、上传、延迟和丢包等互联网连接性能指标。

非常非常的方便哦!

之后,就可以开始撸代码了。

首先导入命名空间:

  1. import speedtest
复制代码

然后要用到一个 S 开头的 Speedtest 构造一个实例。

就叫 fishc 吧:

  1. fishc= speedtest.Speedtest()
复制代码


通过实例的一个方法 get_servers() 获取所有的服务器列表。

这些列表都是用来方便我们测速滴,可以在这个库的官网找到。

2021-08-18_18-48-36.jpg
传送门

想测也可以在线的,不过我们就是要写代码,自己封装快捷方式

先来载入:

  1. fishc.get_servers()
复制代码

得到所有的服务器列表后,再来测试真实的上传或下载速度。

接下来就是本节的重点:下载速度和上传速度。

我们创建 dl 来表示下载的结果:

  1. dl = fishc.download()
复制代码

来自于刚才实例的一个 download 方法,我们打印看下结果:

  1. print(f"下载速度:{dl} ")
复制代码


这些数据是以是以比特位为单位的。

而我们日常生活中呢,通常是以 kb(千兆节) 或者 mb(兆字节) 为单位。

除以 /1024 就是 kb,再除就是 mb:

  1. print(f"下载速度:{dl/1024/1024} Mbits ")
复制代码


接下来创建上传速度 ul,自于另外一个 upload 方法。

基本代码就这几行啦,跑一下看结果:

Snap2.png

过程需要需要一些时间,因为首先要获得我们的服务器列表,然后再去测试上传和下载速度。

当所有的步骤都完成之后,会打印出上面两串数字。

由于我们把它转换成以兆为单位。

看到下载速度是 xxx 兆,上传速度 xxx 兆。

这里小数点的后面位数太多,我们把它换一下:

  1. print(f"下载速度:{dl/1024/1024:.2f} Mbits ")
复制代码

每个值保留两位小数点,通过格式化字符串来实现。

来看到最终结果:

Snap4.png

还不会用格式化字符串的童鞋去看这个视频:



即然开头说做成小工具,那就要用到 tkinter 来包装下。

这里没办法深入讲给大家,文字版教程去论坛上看:传送门

Snap5.png

剧透一下,很快很快很快小甲鱼老师就会出 tkinter 视频课程哦!

来把代码快速搞定!

运行:

游客,如果您要查看本帖隐藏内容请回复


233333,应该没有比这张图速度还“快”的了吧?!

鱼C专属 logo 素材也放到源码啦~

快去试试,看看你家的网速够不够快!!!

源码: 网络测速.zip (3.2 KB, 下载次数: 107, 售价: 19 鱼币)

评分

参与人数 2荣誉 +7 鱼币 +8 贡献 +3 收起 理由
小伤口 + 5 + 5 感谢楼主无私奉献!
不二如是 + 2 + 3 + 3 冲!

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-22 08:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表