1

閲覧履歴を別のファイルに記録したいと考えています。これを行うには、ネットワーク トラフィックをログに記録し、具体的には PC から発信された HTTP get 要求をログに記録します。Pythonでこれをやりたいのですが、どこから始めればよいかわかりません。

4

1 に答える 1

1

前述したように、非常に簡単なソリューションとして dsniff のurlsnarfツールを使用できます。厳密に Python のソリューションを探していない場合は、Python から簡単にラップできます。

リアルタイムの出力を取得するには、subprocessモジュールを使用して直接実行できます。

import subprocess

p = subprocess.Popen('urlsnarf', stdout = subprocess.PIPE)
try:
    while True:
        l = p.stdout.readline()
        # ...
finally:
    p.terminate()

ただし、その場合、ユーザーはパケット スニッフィングに必要なアクセス許可を持っている必要があります。root として実行する場合は、urlsnarf を個別に実行し、出力を名前付きパイプでパイプするだけの方がよいでしょう。

最初に、root 権限を使用して (シェルで):

mkfifo /home/youruser/tmp/urlsnarf-pipe
chown youruser /home/youruser/tmp/urlsnarf-pipe
urlsnarf > /home/youruser/tmp/urlsnarf-pipe

次に、Python スクリプト内からパイプを読み取るだけです (ユーザーとして実行します)。

f = open('/home/youruser/tmp/urlsnarf-pipe', 'r')
while True:
    l = f.readline()
    # ...
于 2012-08-20T08:35:52.020 に答える