Winapi 如何使用winpcap在应用程序方面捕获网络流量?

Winapi 如何使用winpcap在应用程序方面捕获网络流量?,winapi,visual-c++,mfc,winpcap,Winapi,Visual C++,Mfc,Winpcap,我必须制作一个基于windows的应用程序,用于捕获每个应用程序的网络流量,其中一些正在运行的应用程序使用相同的端口号来发送和接收数据包。 我已经使用winpcap并成功地捕获和过滤了它们,包括端口和目的地,但我不知道如何在应用程序方面捕获它们,这意味着如何从ip数据包中了解应用程序信息。 只有winpcap可以解决这个问题,或者应该使用其他api或库。 我们能从数据包头中得到生成数据包的应用程序信息吗 ** 谁能给我举个例子,在vc++中使用IPHLAPI和winpcap来捕获每个应用程序

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

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


**我认为winpcap不可能做到这一点


看一看。它一点也不高级。如果您查看示例,您可以找到一个完全符合您要求的示例。

winpcap没有很好的方法来判断哪个进程正在发送什么数据。 但windows确实如此。 试用

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

您无法看到进程在哪个端口上发送,但可以看到udp数据包在哪个端口上接收


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

我们可以使用IPHLAPI与winpcap进行进程级网络通信吗?如果是,请在vc++中举一个例子。因为我在网络和vc++方面都是新手,所以我使用TCPTable获取网络静态信息,并比较使用winpcap捕获的数据包头以获取进程id。