4

Linux上で実行されるPythonアプリケーションを書いています。ネットワークケーブルが抜き差しされた場合に、登録してシステムから通知を受けられるようにしたい。

USBプラグインイベントの通知を受け取るために、すでにpyUdev (libUdevのPythonバインディング)を使用しています。ただし、ネットワークeth0モジュール(たとえば)は常にロードされたままであるため(ケーブルが接続されているかどうかに関係なく)、必要な情報を取得できません。アップ/ダウンイベントの場合にのみ機能します。

この機能を提供するWindowsWMIに関する多くの投稿を読みましたが、Linuxにはありません。私は正しい方向を見ていますか?

これを自分のプログラムと統合したいので、これを行うPythonの方法(Pythonライブラリ)が理想的です。

4

2 に答える 2

1

ポーリングを介してネットワークインターフェイスの「UP」ステータスを取得するには、 ifconfig出力の解析から、/ proc / net / ...疑似ファイルのステータスの読み取りまで、さまざまな方法があります。

ただし、そのようなイベントについて通知を受ける(つまり、自分でポーリングしない)方法については、Ubuntuでの最善のオプションはnetplugパッケージを使用することです。デフォルトではインストールされません。次のことを行う必要があります。sudoapt-getinstallnetplug

いくつかのドキュメントはここにあります:http://manpages.ubuntu.com/manpages/lucid/man8/netplugd.8.html

設定するには、/ etc / netplug/netplugd.confおよび/etc/ netplug/netplugスクリプトを微調整する必要があります。これらの構成ファイルの例については、 http: //natisbad.org/dyn-net/index.htmlの「netplugの構成」セクションを確認してください。

/ etc / netplug / netplugを使用すると、ネットワークがダウン/アップしたときに独自のPythonスクリプトを呼び出すことができるため、アプリケーションに対して独自の種類のイベントを生成できます。

于 2011-09-06T09:39:17.950 に答える
0

netplugdコマンドを調べましたか?Pythonラッパーが存在するかどうかはわかりませんが、出力を解析するのは難しいことではありません。

于 2011-08-18T01:19:01.190 に答える