diff --git a/monitor.py b/monitor.py index 53d6982..6bf6771 100644 --- a/monitor.py +++ b/monitor.py @@ -96,6 +96,7 @@ def fetch_address_list(api) -> list[str]: def mikrotik_ping(api, address: str) -> Optional[float]: """ Возвращает avg-rtt (мс) или None если хост недоступен. +<<<<<<< HEAD RouterOS API: /ping — это команда, вызывается через get_binary_resource. """ try: @@ -124,6 +125,28 @@ def mikrotik_ping(api, address: str) -> Optional[float]: return sum(rtts) / len(rtts) return None +======= + """ + try: + ping_resource = api.get_resource("/ping") + results = ping_resource.call( + "", + { + "address": address, + "count": str(PING_COUNT), + "timeout": str(PING_TIMEOUT_MS), + }, + ) + for row in results: + if "avg-rtt" in row and row.get("avg-rtt"): + try: + return float(row["avg-rtt"].replace("ms", "").strip()) + except ValueError: + pass + if row.get("packet-loss") == "100": + return None + return None +>>>>>>> 994b95f3e9aa67ddf108ce11904cd69f3d736ab8 except Exception as exc: log.warning("Ошибка пинга %s: %s", address, exc) return None