A API fornece redes sem fio notificações no linux?
-
08-07-2019 - |
Pergunta
Gostaria de fogo algum retorno de chamada de cada vez que a minha placa de rede envia informações sobre as redes disponíveis.Eu realmente não me importo se eu precisar pesquisar a informação que me quer.Eu só não quero depender de desova "iwlist scan last
"a cada segundo, mas que é exatamente a informação que eu preciso (nome de rede + canal + tipo de criptografia).
Existe uma biblioteca que implementa uma função como essa?(ou existem algumas chamadas ioctl para fazer o que?)
Eu só estou interessado em um módulo ndiswrapper se o que importa.
Solução
Se o NetworkManager estiver em execução, é acessível através de seu DBUS API -- Veja o WirelessNetworkAppeared
e WirelessNetworkDisappeared
eventos.
Caso contrário, você terá que lidar com wext você mesmo (é isso que o nm usa por baixo), você estaria interessado no IWEVREGISTERED
e IWEVEXPIRED
Eventos chegando ao Netlink_route interface.
Outras dicas
Se você não quiser usar o DBUS, você também pode simplesmente largar um script/programa em /etc/NetworkManager/dispatcher.d/
, onde ele será chamado pelo NetworkManager em certos eventos.
Ver "man 8 NetworkManager
"para os tipos de eventos e argumentos passados para o script.O script será executado como root
, porém , o que pode não ser o que você deseja.