def run(self):
#do pings
for x in range(0, self.repeat):
self.one_ping(self.ip, self.port, self.identifier, self.sequence, self.ttl, self.timeout)
self.sequence += 1
if x != self.repeat -1:
time.sleep(self.sleep)
#count packet loss
self.result['packet_loss'] /= self.repeat
#try to get hostname
try:
self.result['hostname'] = socket.gethostbyaddr(self.ip)[0]
except socket.herror:
self.result['hostname'] = None
#calculate averate time
if len(self.result['times']) != 0:
self.result['avg_time'] = sum(self.result['times']) / len(self.result['times'])
#and calculate mdev
mean = sum([float(x) for x in self.result['times']]) / len(self.result['times'])
self.result['mdev'] = sum([abs(x - mean) for x in self.result['times']]) / len(self.result['times'])
return self.result
评论列表
文章目录