2012-01-22 7 views
9

के साथ नेटवर्क डेटा को मापें मैं वर्तमान में एक कंप्यूटर को बंद करने के लिए एक प्रोग्राम लिख रहा हूं (कहें, आधे घंटे) नेटवर्क यातायात एक निश्चित दहलीज से नीचे है।पाइथन

BEGIN SUBPROGRAM 
    loopFlag = True 
    Wait 5 minutes # Allows time for boot and for the machine to settle 
    traffic = 0 
    WHILE loopFlag = True DO 
     FOR sec = 0 to 3600 
      traffic += *network.traffic()* 
      wait 1 second 
     ENDFOR 
     IF traffic < trafficThreshold THEN 
      loopFlag = False 
     ENDIF 
    ENDWHILE 
    os.ShutDown() 
END SUBPROGRAM 

क्या मैं के लिए देख रहा हूँ पायथन मॉड्यूल या पुस्तकालय है कि मुझे इस को मापने के लिए अनुमति देगा:

यहाँ स्यूडोकोड है कि मैं काम किया है सही तर्क दे देंगे है।

जबकि मेरे पास donevariousresearch है, यह उनकी भाषा के बावजूद, मैं बाद में कार्यक्षमता की तरह प्रतीत नहीं होता हूं।

इस पर लागू करने के तरीके पर कोई विचार?

उत्तर

19

आपके सिस्टम पर नेटवर्क यातायात की जाँच करने के लिए, मैं सुझाव है कि आप psutilhere पर गौर:

>>> psutil.network_io_counters(pernic=True) 
{'lo': iostat(bytes_sent=799953745, bytes_recv=799953745, packets_sent=453698, packets_recv=453698), 
'eth0': iostat(bytes_sent=734324837, bytes_recv=4163935363, packets_sent=3605828, packets_recv=4096685)} 
>>> 

और बंद करने के लिए अपने OS, अगर आप खिड़कियों पर कर रहे हैं इस जाँच: OS Reboot, Shutdown, Hibernate, Sleep, Wakeup (Windows Python)

और यदि आप linux/unix का उपयोग कर रहे हैं, मॉड्यूल का उपयोग shutdown/reboot कमांड भेजने के लिए करें।

+0

मैं इस पर गौर करेंगे। मुझे शट डाउन के साथ परेशानी नहीं हो रही थी, इसलिए इसके लिए अतिरिक्त ब्राउनी पॉइंट्स। सबकुछ काम करता है तो मैं सही निशान लगाऊंगा। – nchpmn

+0

यह काम करता है, धन्यवाद! – nchpmn

+0

प्रति सेकंड इनमें से प्रत्येक आंकड़े क्या हैं? – travis1097

-2

और आप नेटवर्क उपयोग पर नजर रखने और बस ऐसे ही फ़ाइल पुस्तकालय के साथ एक फ़ाइल में पैकेट लिख सकते हैं:

import socket 
HOST = socket.gethostbyname(socket.gethostname()) 
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP) 
s.bind((HOST, 0)) 
while True: 
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) 
# receive all packages 
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) 
# receive a package 
newfile = open("results.txt", "at") 
packets = (s.recvfrom(65565)[0],"hey", s.recvfrom(65565)[1]) 
newfile.write(str(packets[0])) 
newfile.write(str(packets[1])) 
newfile.write("\n") 
newfile.close() 
print (s.recvfrom(65565)) 
+3

क्या आप इस कोड को प्रश्न का उत्तर देने के पूर्ण व्याख्या में [संपादित करें] कर सकते हैं? कोड-केवल उत्तर [निराश] (http://meta.stackexchange.com/q/148272/274165) हैं, क्योंकि वे समाधान नहीं सिखाते हैं। –