如何通过数据包嗅探记录浏览历史记录?

时间:2012-08-18 15:02:56

标签: python packet-sniffers

我想将浏览历史记录记录在单独的文件中。我想通过记录网络流量和特定来自我的PC的HTTP get请求来做到这一点。我想用Python做这个,但我不知道从哪里开始。

1 个答案:

答案 0 :(得分: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权限(在shell中):

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()
    # ...