私はPythonでプログラムを開発しています.1つの要素は、プログラムが開いてから使用した帯域幅をユーザーに伝えます(プログラム内だけでなく、プログラムが開いている間の通常のWebブラウジング)。出力は GTK で表示されるはずです
存在しない場合は、正しい方向に私を向けることができますか。pythonproxy のような既存のプロキシ スクリプトを編集する必要があるようですが、どのように使用するかわかりません。
ありがとう、
私はPythonでプログラムを開発しています.1つの要素は、プログラムが開いてから使用した帯域幅をユーザーに伝えます(プログラム内だけでなく、プログラムが開いている間の通常のWebブラウジング)。出力は GTK で表示されるはずです
存在しない場合は、正しい方向に私を向けることができますか。pythonproxy のような既存のプロキシ スクリプトを編集する必要があるようですが、どのように使用するかわかりません。
ありがとう、
私のタスクでは、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()
何か (python で書かれている) が存在するかどうかは定かではありませんが、以下を参照してください。
帯域幅の監視(実際にはアクティブなプロジェクトではありませんが、アイデアが得られるかもしれません)。
Munin Monitoring (真珠ベースのネットワーク監視プロジェクト)
ntop (libpcap に基づいて C/C++ で記述)
また、自分で何かをしようとしている場合に参考にするために、1 つの方法として、sudo cat /proc/net/dev
プロキシは、それを使用するように構成されたネットワーク アプリケーションのみをカバーします。たとえば、プロキシを使用するように Web ブラウザを設定できますが、プロキシが終了するとどうなりますか?
最善の方法は、スタックの下にフックすることだと思います。すでにこれを行うプログラムがありiftop
ます. http://en.wikipedia.org/wiki/Iftop
のソース コードを読むことから始めることができますiftop
。おそらく、それを Python C 拡張機能にラップします。iftop
または、データをディスクに記録して Python から読み取るように書き直します。