如何在本地机器上嗅探/侦听HTTP



我想监听端口80的请求/响应。

可以用TIdHTTPServer完成吗?如果是,那么怎么做呢?

编辑:我希望我的应用程序能够监听浏览器活动(可以是IE、Chrome、FF等),并获取所有媒体链接(图像、电影)。像MediaPluck

MediaPluck的"问题"在于,您需要更改web浏览器配置中的代理服务器,我认为这是个坏主意。

如果不更改浏览器/客户端连接设置,就无法使用TIdHTTPServerTIdHTTPProxyServer来探查HTTP流量。Fiddler就是这么做的-临时更改WinInet的代理设置(IE使用WinInet,因此它可以透明地接收更改)。您所要求的需要对网络子系统进行较低级别的嗅探,例如WinPCap/Ethereal所做的。

您可以使用TIdHTTPServer编写代理服务器。但是,只有当您在web浏览器中配置此代理服务器时,这种"嗅探"才会起作用。

更新

如果你想写另一个小提琴手;-)请参阅以下答案:有关于fiddler如何工作的资源/代码吗?

更新2

根据您的问题更新,您有两种选择。

按照雷米的指示更改WinInet代理设置。例如,看到这个问题,你只需要将代码从C++翻译成Delphi:C++/WinInet更改代理设置Windows7。

或者编写windows驱动程序以支持捕获数据包。但对于媒体应用程序来说,这似乎是更糟糕的选择。

我可以使用Fiddler或FiddlerCore

最新更新