python - Speedtest-cli 在不同的界面上
问题描述
我有 eth0、eth1 和 wlan0 连接到我的 Raspberry Pi。我想测量不同接口的互联网速度,在这种情况下 - eth1。它适用于 eth0 (192.168.1.21),但如果我尝试使用不同的接口,在本例中为 eth1 (192.168.8.100),则会出现错误。
我已经阅读了 Speedtest python API 文档,并且大部分都是从那里复制的代码。在 StackOverflow 上发帖之前,我也尝试过搜索。
source = "192.168.8.100" #eth1
s = speedtest.Speedtest(source_address=source)
s.get_servers()
s.get_best_server()
s.download()
s.upload()
res = s.results.dict()
download = res["download"]
upload = res["upload"]
ping = round(res["ping"])
print(download, upload, ping)
编辑:这是错误:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 2464, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.8/dist-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.8/dist-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/root/post_test2.py", line 11, in home
s = speedtest.Speedtest(source_address=source)
File "/usr/lib/python3/dist-packages/speedtest.py", line 1091, in __init__
self.get_config()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1123, in get_config
raise ConfigRetrievalError(e)
speedtest.ConfigRetrievalError: <urlopen error timed out>
解决方案
我是 speedtest-cli 的新手,这篇文章回答了我关于如何使用不同界面的问题。所以,谢谢你:-)
这有点猜测,但您的问题可能是由于网络路由。您可以通过两个接口 ping 外部主机吗:
ping -I eth0 google.com
ping -I eth1 google.com
如果 eth1 超时,那么您可能需要更新您的网络路由条目。
ip route
推荐阅读
- excel - 关闭 Access 创建的 Excel 实例后留下的 Excel 进程
- regex - 如何根据行中前一个单元格的值计算不同长度的行中的单元格?
- performance - Qt 在 10 毫秒内画出 100 万个圆圈
- java - 为什么 Java 编译器的设计显然不通过 try-catch 询问最终变量的分配?
- c++ - 为什么添加范围解析参数后代码可以工作?
- c# - .net 核心控制台应用程序作为 Windows 服务 - 是否可以在不使用 Kill() 方法的情况下安全地终止已启动进程的执行?
- django - Django:如何在 ListView 中从 db 获取大量帖子
- javascript - 顶级异步函数在等待/解决之前返回承诺
- php - Windows 和 Ubuntu Git 客户端之间共享 Git 配置:符号链接版本控制问题
- c# - 视频文件未在 C# 中使用 FFMpeg 进行修剪和复制