2011-02-16 154 views
0

我必須製作一個基於Windows的應用程序,它捕獲每個應用程序的網絡流量,其中一些正在運行的應用程序使用相同的端口號來發送和接收數據包。 我已經使用winpcap併成功地捕獲和過濾它們的端口明智和目的地明智,但我不知道如何捕獲它們的應用程序明智,這意味着如何知道來自IP數據包的應用程序信息。 只有winpcap可以解決問題或者其他api或庫應該使用。 我們可以從包頭中獲取哪個包生成的應用信息?如何使用winpcap捕獲網絡流量應用程序?

** 

任何人都可以給我例子,在vC++中使用iphlpapi和winpcap來捕獲每個應用程序的網絡流量。

**

回答

1

我不認爲這是可能的winpcap。請參閱Windows Filtering Platform。它根本不是先進的。如果你看樣品,你可以找到一個完全符合你想要的樣品。

+0

我們可以使用iphlpapi進行winpcap流程智能網絡流量嗎?如果是,那麼請在vC++中舉一個例子,因爲我在網絡和vC++中都是新手。 – Rockford

+0

我使用TCPTable獲取網絡靜態數據,並比較使用winpcap捕獲的數據包頭以獲取進程ID。 – Rockford

0

winpcap沒有一個好的方法來告訴哪個進程正在發送什麼數據。 但窗戶。 嘗試使用

netstat -a -o 

的netstat是一個程序,告訴你,你的終端上正在使用哪些端口。 -a開關說:「給我所有的端口」 -o開關說,

你不能看到你的進程發送在哪個端口上「使用此端口告訴我進程的PID」,但你可以看到哪些端口正在接收udp數據包。

對於tcp數據包,您將看到所有可能需要的信息,包括遠程連接ip地址。

相關問題