2017-06-22 106 views
1

我正在尋找一種方式來獲得的作爲資源監視器信息列表下的窗口一樣,如: enter image description here 我想知道地址和的中發送接收使用選定的應用程序。

在開始時我正在尋找一個C++ win32 api或其他開源庫來做到這一點,我可以找到像GetProcessInformation之類的東西,但它不包含網絡信息。

我看到一些類似的話題,但他們沒有幫助。
Ref_001,看來網絡監視器API不能做特定於應用程序的監視器。
Ref_002,我不知道是否OpenTrace/ProcessTrace/StopTrace可以讓我的網絡使用或不我也不知道如何使用它。
Ref_003,他們提出了一些工具,但它不是我想要的。如何監控windows下的過程網絡使用

回答

2

Windows爲您提供了兩個部分的信息,這些信息來自不同的功能,您需要整理才能獲得完整的故事。從技術上講,它有三個功能:對於數據的第二部分,IPv4和IPv6數據分別具有不同的功能。第一個功能是GetExtendedTcpTable。要獲得上述所有信息,您可能需要調用此(至少)兩次:一次使用TCP_TABLE_OWNER_PID_CONNECTIONS標誌,一次使用TCP_TABLE_OWNER_MODULE_CONNECTIONS標誌檢索本地可執行文件的PID和模塊名稱。

第二對可以獲得有關在特定連接上發送/接收的數據的統計信息。每個連接都由本地地址/端口和遠程地址端口的組合來標識(與上面使用的相同)。您可以通過IPv4的GetPerTcpConnectionEStats或IPv6的GetPerTcp6ConnectionEStats檢索信息。

其中任何一個都會檢索一個表格,表格中的每一行都包含一個連接的統計信息。如果您在瀏覽器中打開了(例如)多個選項卡,可以選擇單獨顯示每個連接的數據,或者如果您認爲合適,可以合併它們。

+0

非常感謝,我會試試看 – sflee