鱼C论坛

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

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

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

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

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

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

在线视频:



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

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

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

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

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

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

首先我们安装一个库:
pip install speedtest-cli
有了它我们就不用自己去 Ping,不用依靠网络浏览器,就可以在本机测量下载、上传、延迟和丢包等互联网连接性能指标。

非常非常的方便哦!

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

首先导入命名空间:
import speedtest
然后要用到一个 S 开头的 Speedtest 构造一个实例。

就叫 fishc 吧:
fishc= speedtest.Speedtest()

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

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

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

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

先来载入:
fishc.get_servers()
得到所有的服务器列表后,再来测试真实的上传或下载速度。

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

我们创建 dl 来表示下载的结果:
dl = fishc.download()
来自于刚才实例的一个 download 方法,我们打印看下结果:
print(f"下载速度:{dl} ")

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

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

除以 /1024 就是 kb,再除就是 mb:
print(f"下载速度:{dl/1024/1024} Mbits ")

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

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

Snap2.png

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

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

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

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

这里小数点的后面位数太多,我们把它换一下:
print(f"下载速度:{dl/1024/1024:.2f} Mbits ")
每个值保留两位小数点,通过格式化字符串来实现。

来看到最终结果:

Snap4.png

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



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

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

Snap5.png

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

来把代码快速搞定!

运行:

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


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

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

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

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

评分

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

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-19 16:14:42 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-20 10:54:16 | 显示全部楼层
针不戳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 11:09:47 From FishC Mobile | 显示全部楼层
这个可以有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-24 11:46:53 | 显示全部楼层
看一看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-24 12:05:55 From FishC Mobile | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-24 19:36:11 | 显示全部楼层
运行了几次  报超时错误    还没看出来问题在哪
speedtest.ConfigRetrievalError: <urlopen error timed out>
speedtest.ConfigRetrievalError: timed out
import speedtest

myspeed = speedtest.Speedtest()
a=myspeed.get_servers()
print(a)
dl_speed = myspeed.download()
ul_speed = myspeed.upload()
print(f"下载速度:{dl_speed/1024/1024:.2f}Mbits")
print(f"上传速度:{ul_speed/1024/1024:.2f}Mbits")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-24 20:29:28 | 显示全部楼层
为什么我下载的是空文件?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-24 20:45:13 | 显示全部楼层
6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-24 23:27:24 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-25 08:46:55 | 显示全部楼层
6666666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-25 09:01:13 | 显示全部楼层
YaoShi 发表于 2021-8-24 19:36
运行了几次  报超时错误    还没看出来问题在哪
speedtest.ConfigRetrievalError:
speedtest. ...

import speedtest

myspeed = speedtest.Speedtest()
a=myspeed.get_servers()
print(a)
dl_speed = myspeed.download()
print(f"下载速度:{dl_speed/1024/1024:.2f}Mbits")
a=myspeed.get_servers()
print(a)
ul_speed = myspeed.upload()
print(f"上传速度:{ul_speed/1024/1024:.2f}Mbits")

这样试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-25 09:57:10 | 显示全部楼层
你们遇到过这人个问题吗?AttributeError: module 'speedtest' has no attribute 'Speedtest'

网上说没有引用这个函数 我也不太懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-25 10:16:46 | 显示全部楼层
村头那棵树彡 发表于 2021-8-25 09:57
你们遇到过这人个问题吗?AttributeError: module 'speedtest' has no attribute 'Speedtest'

网上说没 ...

pip install speedtest-cli
而不是  pip install speedtest

如果你这样做了 建议你先 pip uninstall speedtest  然后再 pip install speedtest-cli
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-25 11:17:08 | 显示全部楼层
wp231957 发表于 2021-8-25 10:16
pip install speedtest-cli
而不是  pip install speedtest

谢谢你hxd,我pip没弄错  pack 导入错了 弄的speedtest  谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-25 11:27:13 | 显示全部楼层
芜湖,为自己加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-25 11:59:54 From FishC Mobile | 显示全部楼层
太强啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-25 12:07:38 From FishC Mobile | 显示全部楼层
差点以为我穿越了 Screenshot_20210825_120707.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-25 12:20:45 | 显示全部楼层
不大不小甲鱼 发表于 2021-8-25 09:01
import speedtest

myspeed = speedtest.Speedtest()

谢谢回复
先试了你的   正常运行    又试了我原来自己写的  也可以运行了
离谱     昨天是傍晚测得   今天下午再试试
运行了几次   发现下载速度变化不大  上传速度一会大一会小  可能是实时速度吧   还没本事看源码  测着玩吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-25 19:12:02 | 显示全部楼层
小伤口 发表于 2021-8-25 12:07
差点以为我穿越了

我看到的也是这样。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 07:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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