我想将浏览历史记录在一个单独的文件中。我想通过记录网络流量,特别是从我的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/