问题摘要和描述
我想记录从我的计算机(在本例中是 Mac)向任何网站或远程服务器发出的所有传出请求。
我主要编写 magento 应用程序,通过它您可以创建所谓的观察者,它可以在调用特定的 class->function() 时自动调用。例如,如果将产品添加到购物车中,您可以编写一个观察者,将客户姓名添加到数据库中。
我正在尝试找到一种在我的计算机上执行类似操作的方法,以便每次计算机向路由器发送请求时,我的应用程序都可以监听该请求并将其添加到 csv 文件中。
我知道有一些浏览器扩展可以做这样的事情,但我希望浏览器不相关并且与来自客户端的请求的最终点一起工作。
我的问题基于以下几点:
也许我过度简化了这个任务,但它听起来像是通过命令行输入就可以完成的事情,这是正确的还是我错了?
如果不是,我首选的语言是 php 和 javascript,但我很乐意尝试最适合这项工作的任何语言。我必须使用这部分操作系统软件所用的语言吗?如果是,那是什么语言?我如何将我的代码与这部分操作系统结合起来?
一旦我弄清楚了如何做到这一点,我是否可能会遇到持续的权限问题?
关于这些要点,如果要在 Windows 机器上运行该应用程序,我需要考虑哪些不同的因素?
答案1
在 Windows 和 OSX 上,都有一个名为 NETSTAT 的命令行实用程序。它的输出实际上是到网络位置的所有开放网络连接。
输出如下所示:
TCP 10.99.1.155:51551 lhr14s23-in-f2:https ESTABLISHED
TCP 10.99.1.155:51555 stackoverflow:http ESTABLISHED
TCP 10.99.1.155:51556 stackoverflow:http ESTABLISHED
TCP 10.99.1.155:51557 stackoverflow:http ESTABLISHED
如果您熟悉 Python,那么捕获 stdOut 和解析外部地址应该很简单。
您可以添加命令行参数以包含进程 ID、进程名称并使其连续运行等等。