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

最佳答案

如前所述,您可以将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()
    # ...

关于python - 如何通过数据包嗅探记录浏览历史记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12019605/

10-16 13:10