2009-05-07 6 views
3

ネットワークカードが利用可能なネットワークに関する新しい情報を送信するたびに、コールバックを開始したいと思います。自分自身で情報をポーリングする必要があるかどうかは気にしません。私はちょうど毎秒 "iwlist scan last"を生成することに頼りたくはありませんが、それはちょうど必要な情報です(ネットワーク名+チャンネル+暗号化タイプ)。LinuxではどのAPIがワイヤレスネットワーク通知を提供していますか?

このような機能を実装するライブラリはありますか? (またはioctl呼び出しがあるのですか?)

問題がある場合は、ndiswrapperモジュールだけに興味があります。

答えて

3

NetworkManagerが実行されている場合は、DBUS APIでアクセスできます - WirelessNetworkAppearedおよびWirelessNetworkDisappearedイベントを参照してください。

そうでない場合、あなたは(これはNMが下に使用するものである)wextを自分で対処する必要があります、あなたはNETLINK_ROUTEインターフェイスを介して来IWEVREGISTEREDIWEVEXPIREDイベントに興味があると思います。

+0

これはすべきことです。しかし、私は静かに素晴らしいラッパーライブラリを期待していた... – viraptor

+0

申し訳ありませんが、私はこの特定の機能のための素晴らしいラッパーを見たことがありません。 : – ephemient

1

DBUSを使用したくない場合は、特定のイベントでNetworkManagerによって呼び出される/etc/NetworkManager/dispatcher.d/にスクリプト/プログラムをドロップすることもできます。

スクリプトに渡されるイベントと引数のタイプについては、「man 8 NetworkManager」を参照してください。 スクリプトはrootとして実行されますが、あなたの望むものとは異なる可能性があります。

+0

残念ながら私のカードではNMが正常に動作しません - それで私は自分自身の通知を望んでいたのです – viraptor

+0

悲しいことに、NMがあなたのカードで正しく動作しない場合、おそらくドライバーが何か間違っていて、ポーリングなしで何もできませんあなたはどのカードを持っていますか?NMで動作するように修正できますか? – ephemient

関連する問題