Какой API предоставляет уведомления о беспроводных сетях в Linux? - PullRequest
3 голосов
/ 07 мая 2009

Я хочу запускать обратный вызов каждый раз, когда моя сетевая карта отправляет новую информацию о доступных сетях. Я тоже не против, если мне тоже придется опросить информацию. Я просто не хочу полагаться на "iwlist scan last" каждую секунду, но это именно та информация, которая мне нужна (имя сети + канал + тип шифрования).

Есть ли библиотека, которая реализует такую ​​функцию? (или есть какие-то ioctl звонки для этого?)

Меня интересует только модуль ndiswrapper, если это имеет значение.

Ответы [ 2 ]

3 голосов
/ 07 мая 2009

Если NetworkManager запущен, он доступен через DBUS API - см. События WirelessNetworkAppeared и WirelessNetworkDisappeared.

В противном случае вам придется иметь дело с wext самостоятельно (это то, что NM использует внизу), вас заинтересуют события IWEVREGISTERED и IWEVEXPIRED, приходящие на NETLINK_ROUTE интерфейс.

1 голос
/ 08 мая 2009

Если вы не хотите использовать DBUS, вы также можете просто вставить скрипт / программу в /etc/NetworkManager/dispatcher.d/, где он будет вызываться NetworkManager при определенных событиях.

Смотрите "man 8 NetworkManager" для типов событий и аргументов, передаваемых в сценарий. Сценарий будет выполнен как root, что может оказаться не тем, что вы хотите.

...