2009-01-13 11 views
12

Có cách nào trong C# hoặc C/C++ & Win32 để giám sát việc sử dụng mạng của một quá trình nhất định (Không có ứng dụng nào được bạn xây dựng rõ ràng)? Tôi muốn theo dõi chỉ 1 quy trình trong khoảng một giờ hoặc lâu hơn, sau đó trả về các byte được sử dụng chỉ bởi quá trình đó, chẳng hạn như ví dụ.Giám sát việc sử dụng mạng của quá trình?

Có thể không? Tôi biết netstat -e trên cửa sổ sẽ cho bạn biết tổng số byte gửi/nhận, nhưng đó là cho tất cả các quá trình.

chỉnh sửa: Nếu tôi không thể chỉ trả lại một quá trình sử dụng, làm cách nào tôi có thể nhận được các byte được gửi/nhận bởi toàn bộ hệ thống? như netstat hiển thị ngoại trừ tôi chỉ muốn các số nguyên.

ví dụ:

 
netstat -e 

          Received   Sent 

Bytes     2111568926  1133174989 
Unicast packets    3016480   2711006 
Non-unicast packets   3122   1100 
Discards       0    0 
Errors       0    0 
Unknown protocols     0 

Tôi chỉ muốn nhận được 2 biến, như rec = 2111568926 và gửi = 1133174989

+0

bạn đã đi đâu cho Mike? – Greg

Trả lời

5

Bạn có thể sử dụng WinPcap cho điều này hoặc viết điều khiển thiết bị của riêng bạn. Tôi không nghĩ rằng có bất kỳ quầy xử lý perfmon nào bạn có thể tận dụng.

5

Có thể, nhưng nếu tôi không nhầm, bạn sẽ phải tạo một trình điều khiển mạng để lọc tất cả lưu lượng mạng và tìm ra quy trình nào đã tạo lưu lượng truy cập.

Microsoft có một ứng dụng miễn phí cho nó được gọi là Microsoft Network Monitor 3.2 (download). Theo ghi chú phát hành nó cũng có một api để sử dụng.

API màn hình mạng: Tự tạo các ứng dụng chụp, phân tích và phân tích lưu lượng mạng!

Here is a blog post about these API's.

Theo tôi, bạn nên sử dụng API này (hoặc API khác chẳng hạn như WinPcap) để lọc lưu lượng truy cập thay vì viết trình điều khiển thiết bị của riêng bạn.

-2

NetLimiter 2 Limiter

Network Traffic Monitor Bạn có thể nhận được phiên bản phần mềm miễn phí mới nhất từ ​​here

+5

-1 Đây là câu hỏi lập trình. – bleevo

+4

Tại sao bạn -1 và để lại nhận xét về câu trả lời của tôi. Bạn nên đặt câu hỏi này vào câu hỏi. – grom