Код: Выделить всё
#-----------------------------------------------------------------------------------------
# скрипт проверки активности всех ppp-соединений
#-----------------------------------------------------------------------------------------
# by Rextended https://forum.mikrotik.com/viewtopic.php?f=9&t=83132
# modified Sertik 20/09/2022
# если по тоннелю пинга нет, то осуществляется разрыв тоннеля для переподключения
# внимание ! скрипт будет отключать активное vpn-соединение с админом, т.к. до него пинга не будет !
# поэтому в скрипте сделан обход удаления данного соединения (задаётся в adminClient, должен соответствовать ppp secret)
:local adminClient "you ppp secret admins` name"
:local pppTest value=[/ppp active find];
:local pingNumber value=2;
:local pingMin value=1;
:foreach userTest in=$pppTest do={
:local pingOk value=[:ping [/ppp active get $userTest value-name=address] count=$pingNumber]
:if (($pingOk < $pingMin) && ([/ppp active get $userTest value-name=name]!=$adminClient)) do={
:log warning message=([/ppp active get $userTest value-name=service] . " auto disconnected: ". $pingOk . " ping ok over " . $pingNumber . " " . [/ppp active get $userTest value-name=name] . " " . [/ppp active get $userTest value-name=address])
/ppp active remove $userTest
}
}
Код: Выделить всё
# :local pppTest value=[/ppp active find];
Код: Выделить всё
# :local pppTest value=[/ppp active find where service=pptp];