Как в Firwall Filter сделать конструкцию If-else последовально несколько раз?

Выкладываем здесь готовые конфигурации под определенные типовые задачи
tkachen
Сообщения: 7
Зарегистрирован: 19 сен 2016, 20:10

Re: Как в Firwall Filter сделать конструкцию If-else последовально несколько раз?

Сообщение tkachen » 22 сен 2016, 19:04

Да, однако эта идея подходит. Спасибо! Я почему-то считал что если хост уже есть в листе 1 то для того чтобы его запихать в лист2- система не даст одному хосту быть в 2 листах. Однако, дает! Не дает один хост дважды прописать в один лист. Мне кажется, в ранних версиях этого не было?
tkachen
Сообщения: 7
Зарегистрирован: 19 сен 2016, 20:10

Re: Как в Firwall Filter сделать конструкцию If-else последовально несколько раз?

Сообщение tkachen » 17 ноя 2016, 19:39

Спасибо, коллеги за прекрасный совет по разделению абонентских листов на тарифы и отдельно общий лист для допуска в сеть. Все получилось, я написал скрипт, который по входной команде от биллинга, переданной в микротик, состоящей из номера сотового в качестве коммента, ид-тарифа. Большое спасибо! Я могу дать этот скрипт вам для интереса, если желаете. Но я сегодня не с пустыми руками к Знатокам... Есть вопрос:
Задача такая:
Хочу создать запись в хотспоте по команде биллинга чтобы создавался логин и пароль новому абоненту в статической таблице, для хоз. нужд, на основе переменной :global $username, которая является номером сотового зарегистрированного клиента, длиной 10 символов. (1234567890= например)
При этом, Логином для хотспота является сама переменная $username,
А паролем должно быть последние 4 цифры этого номера, то бишь, этой переменной.

Примерно такая вот должна быть команда:
/ip hotspot user
add name=1234567890 password=7890 profile=prof100 comment="1234567890"

Вместо аргумента у password="7890" должна быть команда, которая выделяет 4 последние цифры с $username.

Вот это что я накопал в Интернете и пробовал с разными аргументами команды [pick $username 6 4] не работает.
Ничего не выводит в пароль, но и ошибку не выдает.

:local b [pick $username 6 4];/ip hotspot user add name=$username password=$b profile=prof
100 disabled=no comment=$username;

Может быть есть опыт работы с обработкой переменных - на части, или как? Именно в среде Микротиковского варианта LUA?
podarok66
Модератор
Сообщения: 3353
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Re: Как в Firwall Filter сделать конструкцию If-else последовально несколько раз?

Сообщение podarok66 » 17 ноя 2016, 21:18

У меня

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

[podarok66@MikroTik] > {
 :local r 1234567890;
 :local e [:pick ($r) 3 5];
 :put $e}

Выводит:
45
Отсюда предлагаю вам выражение :local b [pick $username 6 4] сделать таким :local b [pick ($username) 6 4] или таким :local b [pick "$username" 6 4]
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...

Вернуться в «Готовые конфигурации Mikrotik»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость