我们可以嗅一些程序的网络流量吗?

时间:2012-06-18 09:30:30

标签: c# network-programming sniffing

我想在c#中开发一个程序,可以定位和应用程序或端口的流量,并尝试查看该流量。例如,我在我的应用程序中选择了example.exe程序,它为我提供了网络流量数据。 有可能吗?如果有,请给我一些指示。 我试图不使用airPcap或winPcap或类似的东西,因为这些库以网卡为目标,我不知道用户可能使用的接口卡类型。

3 个答案:

答案 0 :(得分:1)

您必须捕获从NIC(pcap)接收重复的数据包,或通过您自己的应用程序路由请求,以便您可以检查实时数据包流(类似代理)。

对于C#中的WinPcap实现,请查看SharpPcap。有关代理,请参阅here

答案 1 :(得分:1)

winPcap是一个非常好的库,可以满足您的需求。 如果您选择自己动手,那么您只能重新发明轮子,并且可能无法支持尽可能多的网卡。

如果您只想查看流量,则必须在两者之间使用代理。 但我相信你不打算像fiddler那样构建一些东西,例如 介于两者之间,允许您监控流量。

答案 2 :(得分:0)

如果我理解正确,您需要创建一个c#应用程序,从正在运行的应用程序列表中进行选择,并显示进出该应用程序的网络流量。您可以使用c#执行此操作,但您必须调用Windows API才能获取所需的信息。此外,您需要非c#库才能将数据包捕获成为WinPcap。 Windows有一个新的NetMon API,可以像pcap一样。我没有使用它,但你最好使用pcap和CodeCaster发布的SharpPcap库。