首页 > 解决方案 > 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>

标签: pythonlinuxraspberry-pi

解决方案


我是 speedtest-cli 的新手,这篇文章回答了我关于如何使用不同界面的问题。所以,谢谢你:-)

这有点猜测,但您的问题可能是由于网络路由。您可以通过两个接口 ping 外部主机吗:

ping -I eth0 google.com
ping -I eth1 google.com

如果 eth1 超时,那么您可能需要更新您的网络路由条目。

ip route

推荐阅读