每次我的网卡发送有关可用网络的新信息时,我都想触发一些回调。我也不介意自己是否需要轮询信息。我只是不想依赖iwlist scan last
每秒生成“”,但这正是我需要的信息(网络名称 + 通道 + 加密类型)。
有没有实现类似功能的库?(或者是否有一些 ioctl 调用来做到这一点?)
如果这很重要,我只对 ndiswrapper 模块感兴趣。
每次我的网卡发送有关可用网络的新信息时,我都想触发一些回调。我也不介意自己是否需要轮询信息。我只是不想依赖iwlist scan last
每秒生成“”,但这正是我需要的信息(网络名称 + 通道 + 加密类型)。
有没有实现类似功能的库?(或者是否有一些 ioctl 调用来做到这一点?)
如果这很重要,我只对 ndiswrapper 模块感兴趣。
如果 NetworkManager 正在运行,则可以通过其DBUS API访问它——参见WirelessNetworkAppeared
和WirelessNetworkDisappeared
事件。
否则,您将不得不自己处理wext(这是 NM 在下面使用的),您会对来自NETLINK_ROUTE接口的IWEVREGISTERED
和IWEVEXPIRED
事件感兴趣。
如果您不想使用 DBUS,您也可以将脚本/程序放入/etc/NetworkManager/dispatcher.d/
中,NetworkManager 会在某些事件时调用它。
有关传递给脚本的事件和参数的类型,请参见“ man 8 NetworkManager
”。但是,该脚本将执行为root
,这可能不是您想要的。