如何在命令行中捕获所有访问的URL?

重新动物战争

我想让我在浏览器中访问的所有URL都实时捕获在命令行中,以将它们传递到另一个程序。我将如何做到这一点?

格式应该是每行一个URL,别无其他,没有制表符,没有空格等。

到目前为止,这就是我所得到的。除去选项卡不起作用。我看到一条评论回复某人(在最底层),他在将其传递给grep时没有问题,他应该逃脱它。我不太明白这一点。

sudo httpry -F -i eth0 -f host,request-uri | tr -d 't'

即使这可行,它也不能与https一起使用,对吗?有没有另一种方式可以做到这一点,包括https?我愿意将浏览器插件用于Firefox和Chrome(如果存在)。只想将所有访问的URL发送到脚本。

也许我可以实时解析浏览器的历史并通过管道传输?

它是

捕获网络流量是可能的,但很麻烦。我的计算机上运行着许多通过HTML进行通信的应用程序,它们会使用自动API处理填充日志,而不会反映出正在访问的内容。

就像您正确说的那样,它不会向您显示HTTPS。该URL是请求的加密部分。

我将直接定位浏览器。它们在SQLite3数据库中保留了足够不错的历史记录,一旦安装了sqlite3软件包(sudo apt-get install sqlite3,查询起来就非常简单您可以简单地运行:

sqlite3 ~/.mozilla/firefox/*.default/places.sqlite "select url from moz_places order by last_visit_date desc limit 10;"

这将输出您访问的最后10个URL。

Chrome具有类似的设置,可以同样简单地查询:

sqlite3 ~/.config/google-chrome/Default/History "select url from urls order by last_visit_time desc limit 10;"

这可以工作,但是我在Chrome中存在一些数据库锁定问题。在Firefox中似乎更可靠。我发现数据库锁的唯一方法是制作数据库副本。即使主数据库被锁定并且不应该引起问题,这也可以工作:

cp ~/.config/google-chrome/Default/History history.tmp
sqlite3 history.tmp "select url from urls order by last_visit_time desc limit 10;"
rm history.tmp

这种方法甚至对于Firefox也是明智的。FF似乎没有锁定(或采用了较短的锁定),但是我不确定如果您在写入中期发现它会发生什么情况。


要将其转换为实时显示,它要么是您需要轮询的(它不涉及SQL查询,这样可能就可以了),或者使用诸如inotifywait监视数据库文件的更改之类的东西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在ubuntu 14.04中访问Ruby命令行?

如何在Python中访问命令行参数?

如何在Swift中访问命令行参数?

如何在Spring配置中访问命令行参数?

如何在Nim中访问命令行参数?

如何在单个命令行中杀死所有PHP-FPM进程

如何在Windows的命令行中列出所有进程?

如何在Windows中显示所有进程的完整命令行

如何在Zsh的命令行中展开所有变量?

如何在命令行中获取所有打开的窗口的列表?

如何在Windows的命令行中杀死所有无头Chrome实例?

如何在隐身模式下通过带有URL的命令行通过命令行打开Google Chrome?

如何在Linux上裁剪和转换目录和子目录中的所有图像(命令行)?

如何在Robot框架中传递命令行参数以使其可用于所有库?

如何在单个命令行中恢复我的 Firebird 数据库并修改所有者设置?

如何在bash / osX中从命令行列出所有已安装的软件包

从命令行将页面中的所有URL设为绝对

调试模块如何在命令行上访问事实?

如何在Windows的命令行上访问MTP设备?

如何在命令行的所有临时视图中取消签出文件?

如何在Windows命令行上保留程序的所有输出?

如何在Windows 7上从命令行删除所有COM端口?

如何在特定时间后查找所有新修改的文件?(Windows命令行)

如何在命令行上查看所有打开的拉取请求?

如何在Dart Pub包管理器中访问命令行

如何在不访问命令行的情况下更改远程服务器上的文件/文件夹所有权?

如何在linux的命令行中在后台处理带有if条件的命令

如何在一个命令行中运行多个带有&的命令?

Unity 命令行——如何在没有 -quit(ing) 的情况下为每个命令访问现有实例