1

Linux と Windows の両方で Python でネットワーク情報を取得するにはどうすればよいですか? Ubuntu 12.10 64 ビットの Python 2.7 で netinfo パッケージ (ver 0.3.2) を使用しようとしましたが、このパッケージを使用すると、以下に示すようにハンドルが閉じられません。私の場合は受け付けません。

netinfo のインポート

デフォルト countOpenFiles():
    リソース、fcntl、os のインポート
    n_open = 0
    名前 = []
    ソフト、ハード = resource.getrlimit(resource.RLIMIT_NOFILE)
    範囲内の fd (0、ソフト):
        試す:
            f = fcntl.fcntl(fd, fcntl.F_GETFD)
            n_open += 1
        IOError を除く:
            継続する
    n_open を返す

範囲内の i の場合 (10):
    netinfo.get_ip('eth0')
    print countOpenFiles()

以下を生成します。

4
5
6
7
8
9
10
11
12
13

リソースリークのない netinfo パッケージに似たものが欲しいです。

助けてくれてありがとう。

4

1 に答える 1

0

正確に何をしたいですか?私が見る限り、あなたは eth0 ファイルハンドルを数えませんが、代わりにすべてのファイルハンドルを数えます。IP ファイルハンドルを開きたくない場合は、Linux で lsof (シェルツール) を使用できます。

lsof -u あなたのユーザー | eth0だけでなくIPv4をgrepしますが、インターフェイスでそれをフィルタリングする方法がわかりません。

于 2013-02-07T14:56:58.217 に答える