捕获HTTP请求

有没有办法使用C#监视和捕获来自计算机的所有传出HTTP请求?

我需要一种独立于浏览器的方式记录访问过的URL。

您可能希望使用捕获pcap或winpcap等库的现有网络接口来执行此操作。 自己重写所有必要的东西会花费很多时间。

链接到Pcap

链接到WinPcap

编辑:刚看到有人也写了C#绑定到winpcap : SharpPcap

我用fiddler( http://www.fiddler2.com

听起来像是在经历某种“数据包嗅探”工具之后。

以下是使用C#编写的数据包嗅探器(带有可下载源代码)的Code Project站点上的文章的几个链接:

数据包捕获和Analayzer

C#中的网络嗅探器

如果您刚刚捕获了访问过的URL,这些实用程序可能过度,但是,您将能够从HTTP数据包中提取URL并丢弃其余的数据包,但是,您可能还希望捕获所有数据包信息,其中如果这些实用程序会有所帮助。

您可能会通过某种代理设置节省大量时间和精力。 一个不错的本地机器解决方案是Fiddler (需要Windows),或类似Squid服务器的网络解决方案。

我希望Wirehark为你工作。 它是免费的跨平台。 此外,“Wireshark是世界上最重要的网络协议分析仪,并且是许多行业和教育机构的事实上(通常是法律上的)标准”

看看, Wireshark-Wikipedia

此外,在C#中为此目的编写一个简单的http代理是一项微不足道的任务。