-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNetworkMonitor.py
45 lines (42 loc) · 1.36 KB
/
NetworkMonitor.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import subprocess
from datetime import datetime
def check_ping():
hostname = '8.8.8.8'
p = subprocess.Popen(["ping.exe",hostname,'-n','1'], stdout = subprocess.PIPE)
com = p.communicate()[0]
#Retorna 'received' e 'average time'
if int(com.split(',')[1].split('=')[1]) == 1:
return com.split(',')[1].split('=')[1], com.split(',')[5].split('=')[1].split('m')[0]
else:
return com.split(',')[1].split('=')[1], 0
if __name__ == '__main__':
filename = "output.csv"
file = open(filename,"a")
previous = datetime.now()
previousMinute = previous.minute - 1
netWorking = 0
netFailed = 0
averageTime = 0
while(True):
now = datetime.now()
ping = check_ping()
print ping
if now.minute == previous.minute:
if int(ping[0]) == 0:
netFailed += 1
else:
netWorking += 1
averageTime += int(ping[1])
else:
print "Escrito!"
if netWorking>0:
averageTime = averageTime/netWorking
print "Tempo medio: " + str(averageTime)
print "Bons: " + str(netWorking)
print "Ruins: " + str(netFailed)
file.write(str(previous.month) + "," + str(previous.day) + "," + str(previous.hour) + "," + str(previous.minute) + "," + str(averageTime) + "," + str(netWorking) + "," + str(netFailed) + "\n" )
previous = now
netWorking = 0
netFailed = 0
averageTime = 0
file.close()