我想嗅听/听取端口80的请求/响应。如何在本地机器上嗅探/侦听HTTP?
可以用TIdHTTPServer
完成吗?如果是这样,那么怎么样?我想我的应用程序在浏览器活动(它可以是IE浏览器,铬,FF等...),并获得所有媒体链接(图像,电影)听倾听。像MediaPluck
MediaPluck的“问题”是,您需要在您的网页浏览器配置中更改代理服务器,我认为这是一个坏主意。
我想嗅听/听取端口80的请求/响应。如何在本地机器上嗅探/侦听HTTP?
可以用TIdHTTPServer
完成吗?如果是这样,那么怎么样?我想我的应用程序在浏览器活动(它可以是IE浏览器,铬,FF等...),并获得所有媒体链接(图像,电影)听倾听。像MediaPluck
MediaPluck的“问题”是,您需要在您的网页浏览器配置中更改代理服务器,我认为这是一个坏主意。
无法使用TIdHTTPServer
或TIdHTTPProxyServer
来嗅探HTTP通信,而无需更改连接到它的浏览器/客户端设置。这就是Fiddler所做的 - 暂时改变WinInet的代理设置(IE使用WinInet,所以它透明地改变了这些改动)。你所要求的要求对网络子系统进行较低级别的嗅探,比如WinPCap/Ethereal的功能。
多年前我曾与IngusSniffer一起工作 - 在Francois Piette的[主页](http://www.overbyte.be/eng/download.html?url=/arch/isniffer.zip)中找到。但它不适用于现代Windows操作系统。 – ZigiZ 2012-01-14 14:35:31
做您可以编写使用TIdHTTPServer
代理服务器。但是,如果您在网络浏览器中配置此代理服务器,此“嗅探”将仅适用。
UPDATE
如果你想写另一提琴手;-)看到这样的回答: Any resource/codes on how fiddler works?
更新2
根据您的问题的更新,你有两个选择。
或者像Remy指出的那样更改WinInet代理设置。例如,看到这个问题,你只需要将代码从C++转换为Delphi:C++/WinInet Change Proxy Settings Windows 7。
或者编写windows驱动程序来支持捕获数据包。但是这对媒体应用程序来说似乎更糟糕。
什么是“不是真正的问题”呢?我应该删除它还是什么? – ZigiZ 2012-01-14 14:18:49
要在HTTP级别“嗅探”您需要代理。如果来自/到端口80的所有通信都通过它传送,则可以使用透明端口。但要实现它,您需要通过互联网网关在机器外部执行该操作,或者在计算机上的TCP级别拦截它。像WinPvap这样的库将允许它,但是然后你将不得不处理整个HTTP协议来获取你需要的信息。 – 2012-01-14 14:54:01