linux wifi:如何检测接口的“连接”状态?

linux wifi:如何检测接口的“连接”状态?

在 Linux 上,是否有一种(低级)方法可以知道无线接口当前是否连接到网络?

在这方面,我未能在和兄弟姐妹中找到有用的东西/sys/class/net/<iface>/operstate,它们似乎大多提供稳定的状态或统计数据。

我知道wpa_supplicant日志准确地说明了正在发生的事情(以及更多),但我没有看到任何用于实时查询守护进程的参数,并且我不想启用日志记录和轮询状态,因为我在一个小的平台上(精简版 Armbian 4.9.82-ti-r102,Octavo SIP)。

出于同样的原因,我当然不会使用任何网络管理器。

答案1

你可以像网络管理员那样做,使用 wpa_supplicant 的套接字控制接口(或其等效的 D-Bus 服务)来接收实时通知。

例如,控制接口文档提及以下事件:

  • CTRL-EVENT-EAP-STARTED:EAP 身份验证已开始(已收到 EAP 请求/身份)
  • CTRL-EVENT-EAP-SUCCESS:EAP 身份验证成功完成
  • CTRL-EVENT-CONNECTED:表示身份验证成功完成并且数据连接现已启用

答案2

由于我在一个小的平台上,我不想启用日志记录并轮询状态

wpa_supplicant与选项一起使用-f来创建日志文件。

 -f output file
          Log  output  to  specified  file instead of stdout. 

然后用来grep检查如果无线接口当前正在尝试连接网络来自日志文件。请参阅我对 U&L 的回答

相关内容