0

我必须制作一个基于 Windows 的应用程序,用于捕获每个应用程序的网络流量,其中一些正在运行的应用程序使用相同的端口号来发送和接收数据包。我已经使用了 winpcap 并成功地捕获并过滤了它们的端口和目的地,但我不知道如何从应用程序中捕获它们,这意味着如何从 ip 数据包中了解应用程序信息。只有winpcap可以解决问题还是应该使用其他一些api或库。我们可以从数据包头中获取生成数据包的应用程序信息吗?

 **

谁能给我举个例子,在 vc++ 中使用 iphlpapi 和 winpcap 来捕获每个应用程序的网络流量。

**

4

2 回答 2

1

我认为使用 winpcap 是不可能的。

看看Windows 过滤平台。它根本不先进。如果您查看示例,您可以找到一个完全符合您要求的示例。

于 2011-02-16T10:18:11.017 回答
0

winpcap 没有很好的方法来判断哪个进程正在发送什么数据。但是窗户可以。尝试使用

netstat -a -o

netstat 是一个程序,它告诉您终端上正在使用哪些端口。-a 开关说,“显示所有端口” -o 开关说,“显示使用此端口的进程的 pid”

您看不到您的进程正在发送哪个端口,但您可以看到哪些端口正在接收 udp 数据包。

对于 tcp 数据包,您将看到所有可能需要的信息,包括远程连接 IP 地址。

于 2011-07-30T01:43:31.923 回答