首页 文章 精选 留言 我的

精选列表

搜索[接口开发],共10000篇文章
优秀的个人博客,低调大师

Python 这个库开发测试网速工具后,再也不用担心网络异常了

![](https://developer.qcloudimg.com/http-save/yehe-11081884/46d54d0bd585a61be2d334caf609a874.jpg) 网速测试这件事,平时要么打开浏览器上 Speedtest.net 手动跑一次,要么压根不测——等到视频会议卡成 PPT 才意识到网络有问题。 用 Python 的 `speedtest-cli` 库把这件事自动化,其实不难。测完之后你可以存数据、画趋势图、低于阈值发告警,比网页版能做的事多不少。 --- #### **安装** ``` pip install speedtest-cli ``` #### **代码** 下面这个脚本完成了查找最优服务器、测速、格式化输出、网络质量评估、按阈值给出建议这几件事: ``` importspeedtest importtime fromdatetimeimportdatetime class NetworkSpeedTester: def __init__(self): self.st = speedtest.Speedtest() self.results = None def find_best_server(self): print("正在搜索最佳测试服务器...") servers = self.st.get_servers() best_server = self.st.get_best_server() print(f"已选择服务器: {best_server['host']} ({best_server['country']})") print(f"服务器距离: {best_server['distance']:.2f} km") returnbest_server def run_speed_test(self, timeout=30): print("\n开始网速测试...") print("正在测试下载速度...") download_speed = self.st.download(timeout=timeout) print("正在测试上传速度...") upload_speed = self.st.upload(timeout=timeout) self.results = self.st.results.dict() return { 'download': download_speed, 'upload': upload_speed, 'ping': self.results['ping'], 'server': self.results['server'] } def format_results(self, test_results): download_mbps = test_results['download'] /1_000_000 upload_mbps = test_results['upload'] /1_000_000 ping_ms = test_results['ping'] quality = self.assess_network_quality(download_mbps, upload_mbps, ping_ms) print("\n"+"="*50) print("网速测试结果") print("="*50) print(f"测试时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") print(f"测试服务器: {test_results['server']['host']}") print(f"服务器位置: {test_results['server']['country']}") print("-"*50) print(f"下载速度: {download_mbps:.2f} Mbps") print(f"上传速度: {upload_mbps:.2f} Mbps") print(f"网络延迟: {ping_ms:.2f} ms") print("-"*50) print(f"网络质量评估: {quality}") print("="*50) return { 'download_mbps': download_mbps, 'upload_mbps': upload_mbps, 'ping_ms': ping_ms, 'quality': quality } def assess_network_quality(self, download, upload, ping): ifping100: speed = "超高速" elifdownload>50: speed = "高速" elifdownload>20: speed = "中速" else: speed = "低速" returnf"{speed}网络,延迟{latency}" def main(): print("Python 网速测试工具 v1.0") print("="*50) try: tester = NetworkSpeedTester() tester.find_best_server() raw_results = tester.run_speed_test(timeout=30) formatted_results = tester.format_results(raw_results) provide_recommendations(formatted_results) exceptspeedtest.ConfigRetrievalError: print("错误:无法连接到 Speedtest 服务器,请检查网络连接") exceptExceptionase: print(f"测试过程中发生错误: {str(e)}") def provide_recommendations(results): print("\n建议:") ifresults['download_mbps'] 100: print(" - 延迟偏高,实时通信和在线游戏体验会变差") print(" 试试切换有线连接,或选择更近的服务器") ifresults['quality'].startswith("高速") andresults['ping_ms'] <50: print(" 当前网络状态良好,适合所有网络应用") if __name__ == "__main__": main() ``` 运行后输出类似这样: ``` Python 网速测试工具 v1.0 ================================================== 正在搜索最佳测试服务器... 已选择服务器: speedtest.example.com (中国) 服务器距离: 125.43 km 开始网速测试... 正在测试下载速度... 正在测试上传速度... ================================================== 网速测试结果 ================================================== 测试时间: 2026-03-26 16:30:15 测试服务器: speedtest.example.com 服务器位置: 中国 -------------------------------------------------- 下载速度: 85.67 Mbps 上传速度: 32.45 Mbps 网络延迟: 28.73 ms -------------------------------------------------- 网络质量评估: 高速网络,延迟良好 ================================================== 建议: 当前网络状态良好,适合所有网络应用 ``` --- #### **可以往哪扩展** 基础功能跑通之后,几个方向可以继续做: - 用 `schedule` 定时跑,把结果写进 CSV 或数据库,记录全天网络波动 - 用 `matplotlib` 把历史数据画成折线图,一眼看出哪个时段网速差 - 设定阈值,低于某个速度或延迟超标时发邮件或企业微信告警 - 用 Flask 或 FastAPI 包一层 Web 界面,方便非技术同事查看历史数据 测速本身是最简单的那一步,数据积累起来之后能做的事才有意思。 **“无他,惟手熟尔”!**有需要的用起来! **如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐**❤!

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册