diff --git a/common/utils.py b/common/utils.py index 59723fa..5a08d10 100644 --- a/common/utils.py +++ b/common/utils.py @@ -753,12 +753,18 @@ def ping_avg_time(nameserver): logger.log('ALERT', f'100.0% packet loss, ping {nameserver} failed.') return None elif platform.system() in ('Darwin', 'Linux'): - avg_time = re.findall(r'(?:min/avg/max/.+ )(?:\d+\.\d+)/(\d+\.\d+)/', text)[0] - logger.log('INFOR', f'ping {nameserver} average time {avg_time} ms.') + try: + avg_time = re.findall(r'(?:min/avg/max/.+ )(?:\d+\.\d+)/(\d+\.\d+)/', text)[0] + logger.log('INFOR', f'ping {nameserver} average time {avg_time} ms.') + except IndexError: + return None return avg_time elif platform.system() == 'Windows': - avg_time = re.findall(r'(?:Average|平均).+(\d.)ms', text)[0] - logger.log('INFOR', f'ping {nameserver} average time {avg_time} ms.') + try: + avg_time = re.findall(r'(?:Average|平均).+(\d.?)ms', text)[0] + logger.log('INFOR', f'ping {nameserver} average time {avg_time} ms.') + except IndexError: + return None return avg_time else: logger.log('ALERT', f'{text}')