我需要確定每個進程的網絡使用統計信息,類似於TCPView可以執行的操作。獲取每個連接的帶寬統計信息
Example http://img513.imageshack.us/img513/861/6601f15814544055a590e26.png
所以,你拍我張貼的this question,或this question重複之前,我想指出的是,那些都擁有完整的答案,可以幫助我真正做到這一點。
我一直在做研究,並且有很多方法可以列出活動連接及其相關進程,無論是使用netstat還是其他Windows API(如IpHlpAPI.dll)。
現在,從什麼Google'ing我做了,我還沒有發現太多 - 除了這些含糊其辭:GetPerTcpConnectionEStats和GetPerTcp6ConnectionEStats。推測分別是通過IPv4和IPv6的TCP。現在我正在閱讀其據稱能夠做我需要做的事情。但是,這仍然遺漏了UDP。而那些在TCPViewer工作的XP系統上也不可用。
我會滿意的使用TCP,但問題是,我似乎無法找到任何如何使用它們從C#的例子。
所以我想這一切都歸結到這幾個問題:
- 沒有人真正知道怎麼的TCPView對吧?
- 如何爲TCP使用GetPerTcpConnectionEStats?或者它甚至可以完成我的建議?
- 是否有另一個可用於UDP的替代方案?
這整個問題是看到進程本身的獨立帶寬使用情況。不計算總系統帶寬使用量。
在此先感謝您的任何和所有答案。
很可能你可以通過WMI /性能計數器來做到這一點,但是我個人發現這些API相當神祕...以防萬一你沒有很好的答案並且正在尋找更多的關鍵詞給谷歌。 – 2012-03-19 17:26:44
任何解決方案? – 2013-06-14 14:21:29
@TomerPeled:我從來沒有找到解決方案,並放棄了項目(因爲它是個人反正)。如果您確實瞭解如何確定各個進程的帶寬使用情況,請將其作爲答案發布,這可能會激發我完成舊項目的一些動機:) – caesay 2013-06-14 19:18:12