2009-01-13 18 views
12

क्या सी # या सी/सी ++ & Win32 में एक निश्चित प्रक्रिया के नेटवर्क उपयोग की निगरानी करने के लिए कोई तरीका है (उस एप्लिकेशन के बिना स्पष्ट रूप से आपके द्वारा बनाया जा रहा है)? मैं एक घंटे या उससे भी अधिक समय के लिए केवल 1 प्रक्रिया की निगरानी करना चाहता हूं, फिर केवल उस प्रक्रिया द्वारा उपयोग किए जाने वाले बाइट्स को लौटाएं, उदाहरण के लिए लिमवायर।किसी प्रक्रिया के नेटवर्क उपयोग की निगरानी करें?

क्या यह संभव है? मुझे पता है कि विंडोज़ पर नेटस्टैट आपको भेजे गए/प्राप्त किए गए कुल बाइट बताएगा, लेकिन यह सभी प्रक्रियाओं के लिए है।

संपादित करें: अगर मैं केवल एक प्रक्रिया का उपयोग नहीं कर सकता, तो मैं पूरे सिस्टम द्वारा भेजे गए/प्राप्त बाइट कैसे प्राप्त कर सकता हूं? नेटस्टैट डिस्प्ले के रूप में मैं सिर्फ पूर्णांक चाहता हूं।

जैसे:

 
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 

मैं बस, 2 चर पाने के लिए आरईसी की तरह = +२१११५६८९२६ चाहते हैं और आप इस के लिए WinPcap या अपना खुद डिवाइस ड्राइवर लिख सकता है = 1133174989

+0

आप किसके लिए माइक के लिए गए थे? – Greg

उत्तर

5

भेजा है। मुझे नहीं लगता कि प्रति प्रक्रिया परफॉर्म काउंटर हैं जो आप लीवरेज कर सकते हैं।

5

यह संभव है, लेकिन अगर मुझे गलत नहीं है तो आपको सभी नेटवर्क यातायात को फ़िल्टर करने के लिए नेटवर्क ड्राइवर बनाना होगा और यह पता लगाने के लिए कि किस प्रक्रिया ने यातायात बनाया है।

माइक्रोसॉफ्ट के पास Microsoft Network Monitor 3.2 (download) नामक एक निशुल्क एप्लिकेशन है। रिलीज नोट्स के मुताबिक इसका उपयोग करने के लिए एक एपीआई भी है।

नेटवर्क मॉनिटर एपीआई: अपनी खुद की अनुप्रयोगों को कैप्चर करने, पार्स और नेटवर्क यातायात का विश्लेषण बनाएँ!

Here is a blog post about these API's

मेरी राय में आपको अपने डिवाइस ड्राइवर को लिखने के बजाय यातायात को फ़िल्टर करने के लिए इस एपीआई (या अन्य एपीआई जैसे WinPcap) का उपयोग करना चाहिए।

-2
+5

-1 यह एक प्रोग्रामिंग प्रश्न है। – bleevo

+4

आप -1 क्यों हैं और मेरे उत्तर पर एक टिप्पणी छोड़ रहे हैं। आपको इसे प्रश्न पर रखना चाहिए। – grom

2

पिछले फ्रीवेयर संस्करण प्राप्त कर सकते हैं मैं MSDN मंच पर एक ही प्रश्न पूछा और जवाब मिलता है। स्पष्ट रूप से बोलने की कोशिश की है। अर्थात। कोशिश की लेकिन इतना कठिन नहीं)) ईटीडब्ल्यू का उपयोग करने का सुझाव दिया गया था। मुझे एहसास घटनाओं का ठीक से उपभोग करने का एहसास नहीं हुआ। http://social.msdn.microsoft.com/Forums/en-US/perfmon/thread/b82da95a-1c18-49ce-9bfa-e3d79ec40907

संबंधित मुद्दे