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

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
toka2000
Сообщения: 1
Зарегистрирован: 27 фев 2025, 18:10

# сохранение результата 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")
}
}]


Ответить