Страница 2 из 2

Re: parssing вывода команды ping

Добавлено: 27 фев 2025, 20:06
toka2000
# сохранение результата ping в переменные и массив
:global pingResul [/ping 8.8.8.8 interface=l2tp-out1 count=5 as-value]
:global pingResults $pingResul

:global pingResultArray [] # Создаем глобальный массив для хранения результатов

:put "=== Full ping results ==="
:foreach i in=$pingResults do={
:local seq ($i->"seq")
:local host ($i->"host")
:local size ($i->"size")
:local time ($i->"time")
:local ttl ($i->"ttl")

# Используем конкатенацию строк для вывода
:put ("Ping #" . $seq . ": Host=" . $host . ", Size=" . $size . ", Time=" . $time . ", TTL=" . $ttl)

# Сохраняем данные в массив
:set ($pingResultArray->"$seq") [:toarray "host=$host, size=$size, time=$time, ttl=$ttl"]
}

:put "=== Ping results stored in array ==="
:put $pingResultArray
*****************************************************************************************
Результат:
Ping #0: Host=8.8.8.8, Size=, Time=, TTL=
Ping #1: Host=8.8.8.8, Size=56, Time=00:00:00.390999, TTL=112
Ping #2: Host=8.8.8.8, Size=56, Time=00:00:00.494864, TTL=112
Ping #3: Host=8.8.8.8, Size=56, Time=00:00:00.642489, TTL=112
Ping #4: Host=8.8.8.8, Size=56, Time=00:00:00.880764, TTL=112
[admin@MikroTik] >
[admin@MikroTik] > :put "=== Ping results stored in array ==="
=== Ping results stored in array ===
[admin@MikroTik] > :put $pingResultArray
host=8.8.8.8;size=;time=;ttl=;host=8.8.8.8;size=56;time=00:00:00.390999;ttl=112;host=8.8.8.8;size=56;time=00:00:00.494864;ttl=112;host=8.
8.8.8;size=56;time=00:00:00.642489;ttl=112;host=8.8.8.8;size=56;time=00:00:00.880764;ttl=112
*********************************************************************************************************



здесь можно получить не только пинг ...прошивка 7.ххх

или параметры пинга через активный маршрут :
# IP-адрес для пинга
:local ipping 8.8.8.8
# Количество пингов
:local cnt 1
:local rtt
:local avgrtt

[:tool flood-ping address=$ipping count=$cnt do={
:if ($sent=$cnt) do={
:set rtt ($"max-rtt")
:set avgrtt ($"avg-rtt")
}
}]