C# - 捕获网络流量

13

我希望能够捕获特定计算机的网络流量。我仅对从我的应用程序所安装的计算机中捕获的流量感兴趣(就像Fiddler一样)。与Fiddler类似,我想特别捕获“Web会话”部分显示的信息(ID#,Http状态码,协议,主机,URL,正文大小,内容类型和进程)。

虽然我非常熟悉C#,但我不知道如何捕获这样的网络流量。请有人可以指点我吗?

非常感谢!


5
http://www.codeproject.com/KB/IP/CSNetworkSniffer.aspx - user596075
1
你是否正在寻找可以集成到你的应用程序中的工具,或者是一个独立的应用程序,可以在客户端与你的应用程序并行运行,并捕获流量? - David Hoerster
我曾以为记录端口的过程可能就像说“new Port(portNumber).StartLogging(new Logger())”这么简单。但是经过将近两天的谷歌搜索,我发现编码领域仍然很狂野 :D。 - Saeed Neamati
2个回答

6

注意:我不完全确定你在寻找独立应用程序还是要集成到你的应用程序中,但我的答案将假设你正在寻找要集成到应用程序中的内容。如果不是,请告诉我删除这部分。

如果你正在寻找要集成到应用程序中的内容,可以考虑使用FiddlerCore,它是Fiddler使用的核心功能,但可以集成到独立的.NET应用程序中。

FiddlerCore的wiki在这里,它很好地描述了使用方法。示例应用程序也是如何使用FiddlerCore的良好说明。

希望这有所帮助。祝你好运!


1

WinPcap或其.NET包装器是您的最佳选择。它有非常完善的文档。如果您在Mono中进行此操作,则需要在Unix机器上使用libpcap。API是相同的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接