проверка доступа в интернет скриптом

Раздел для тех, кто начинает знакомиться с MikroTik
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.

1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Ответить
ivanusevanton
Сообщения: 0
Зарегистрирован: 21 мар 2018, 15:31

Доброго времени суток!
Не могу понять почему не работает скрипт:

Код: Выделить всё

/tool {:local rec 0
[/ping 8.8.8.8 count=4] do=[
:set rec $"received"]
:if ($rec=0) do={/interface pppoe-client disable pppoe1-internet
:delay 1s
/interface ethernet disable ether1-wan
:delay 3s
/interface ethernet enable ether1-wan
:delay 10s
/interface pppoe-client enable pppoe1-internet}}
Насколько я понимаю не пишется полученное значение из ping в rec, и как следствие идет постоянный перезапуск соединения.


KARaS'b
Сообщения: 1199
Зарегистрирован: 29 сен 2011, 09:16

Я в скрипты сильно не умею, но когда-то, при помощи инета и советов местных гуру родилось вот такое.

Код: Выделить всё

:local PingCount 2;
:local One 8.8.8.8;
:local Too 93.158.134.3;
:local ResultOne [/ping count=$PingCount $One];
:local ResultToo [/ping count=$PingCount $Too];
:if ($ResultOne=0 && $ResultToo=0) do={/system script run onlime_down}


ivanusevanton
Сообщения: 0
Зарегистрирован: 21 мар 2018, 15:31

не совсем понятно что идет в значение ResultOne и ResultToo. А вообще как вариант можно попробовать.


KARaS'b
Сообщения: 1199
Зарегистрирован: 29 сен 2011, 09:16

ivanusevanton писал(а): 21 мар 2018, 16:45 не совсем понятно что идет в значение ResultOne и ResultToo. А вообще как вариант можно попробовать.
Если хост ответил на оба пакета ResultOne, то на выходе получим "2", если только на один, то "1", если не ответил вообще то "0".


ivanusevanton
Сообщения: 0
Зарегистрирован: 21 мар 2018, 15:31

KARaS'b писал(а): 21 мар 2018, 17:00
ivanusevanton писал(а): 21 мар 2018, 16:45 не совсем понятно что идет в значение ResultOne и ResultToo. А вообще как вариант можно попробовать.
Если хост ответил на оба пакета ResultOne, то на выходе получим "2", если только на один, то "1", если не ответил вообще то "0".
не важно какое количество пакетов пришло? даже если из 4-х пришел хотя бы один?


KARaS'b
Сообщения: 1199
Зарегистрирован: 29 сен 2011, 09:16

Не важно для чего?
Я же написал, что если на оба каунта по первой переменной, на ответили двумя ответами, то на выходе получим "2", если из двух каунтов ответов только на один, то получим "1". По второй переменной, ResultToo, точно такая же картина.


ivanusevanton
Сообщения: 0
Зарегистрирован: 21 мар 2018, 15:31

я о том, что в скрипте отправляются по 2 пакета на каждый хост. В каком случае Result*** будет равен 1 по каждому хосту? В случае если оба пакета пришли или хотя бы один?


KARaS'b
Сообщения: 1199
Зарегистрирован: 29 сен 2011, 09:16

В случае если пришел 1 пакет.


ivanusevanton
Сообщения: 0
Зарегистрирован: 21 мар 2018, 15:31

благодарю за помощь, скрипт поправил под себя, теперь все ок :-):


Ответить