[英]How can I track NIC activity in C#? Specifically ingress/egress by port
我需要在C#中跟蹤每個應用程序通過端口發送和接收的數據量。
使用正確的API或.NET對象是什么?
性能監視器( perfmon
)公開的數據可以通過HKEY_PERFORMANCE_DATA輕松地提供給應用程序。 但是,它不包含您需要的詳細程度。
資源監視器( resmon
)確實按進程顯示網絡活動(盡管不是按端口顯示),並且它使用Windows事件跟蹤(ETW)。 要在您的應用中重現resmon
數據,您需要從ETW捕獲事件並自己匯總總數。 我不知道跟蹤數據是否包含足夠的信息以按端口號細分總數,但如果不這樣做,我會感到驚訝。 ETW數據通常非常詳細。 但是,我認為不支持在.Net中使用ETW數據。 ETW可以以非常高的速率生成事件,因此最好編寫一個本機DLL來使用和聚集數據。
一個更簡單的選擇是找到現有工具。 這是一個起點 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.