9

私はPythonでプログラムを開発しています.1つの要素は、プログラムが開いてから使用した帯域幅をユーザーに伝えます(プログラム内だけでなく、プログラムが開いている間の通常のWebブラウジング)。出力は GTK で表示されるはずです

存在しない場合は、正しい方向に私を向けることができますか。pythonproxy のような既存のプロキシ スクリプトを編集する必要があるようですが、どのように使用するかわかりません。

ありがとう、

4

5 に答える 5

16

私のタスクでは、psutilを使用して非常に単純なソリューションを作成しました。

import time
import psutil

def main():
    old_value = 0    

    while True:
        new_value = psutil.net_io_counters().bytes_sent + psutil.net_io_counters().bytes_recv

        if old_value:
            send_stat(new_value - old_value)

        old_value = new_value

        time.sleep(1)

def convert_to_gbit(value):
    return value/1024./1024./1024.*8

def send_stat(value):
    print ("%0.3f" % convert_to_gbit(value))

main()
于 2016-04-04T08:12:50.343 に答える
3

何か (python で書かれている) が存在するかどうかは定かではありませんが、以下を参照してください。

  1. 帯域幅の監視(実際にはアクティブなプロジェクトではありませんが、アイデアが得られるかもしれません)。

  2. Munin Monitoring (真珠ベースのネットワーク監視プロジェクト)

  3. ntop (libpcap に基づいて C/C++ で記述)

また、自分で何かをしようとしている場合に参考にするために、1 つの方法として、sudo cat /proc/net/dev

于 2013-03-25T14:02:31.113 に答える
0

プロキシは、それを使用するように構成されたネットワーク アプリケーションのみをカバーします。たとえば、プロキシを使用するように Web ブラウザを設定できますが、プロキシが終了するとどうなりますか?

最善の方法は、スタックの下にフックすることだと思います。すでにこれを行うプログラムがありiftopます. http://en.wikipedia.org/wiki/Iftop

のソース コードを読むことから始めることができますiftop。おそらく、それを Python C 拡張機能にラップします。iftopまたは、データをディスクに記録して Python から読み取るように書き直します。

于 2013-03-25T13:55:07.633 に答える