Вывод списка sstp подключений

Обсуждение оборудования и его настройки
Ответить
sektor1100
Сообщения: 3
Зарегистрирован: 27 апр 2020, 18:20

Всем привет!
При вводе команды /ppp active print мы получаем вывод состоящий из нескольких столбцов таких как NAME, SERVICE, Address и тд. Может ли микротик сделать вывод например только имен?
Используя команду :put [/ppp active get [find name=user1] name ] я получу вывод одной строкой user1, а теперь, как сделать так чтобы вышел список абсолютно всех пользователей и может ли микротик так сделать вообще?
При попытке ввода такой команды :put [/ppp active get [find name!=all] name ] (где ALL это не существующее имя) получаю ошибку: invalid internal item number


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Через foreach всё прекрасно выводится. Вопрос, зачем это нужно?


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
sektor1100
Сообщения: 3
Зарегистрирован: 27 апр 2020, 18:20

podarok66 писал(а): 27 апр 2020, 19:42 Через foreach всё прекрасно выводится. Вопрос, зачем это нужно?
Нужно это для того чтобы проинформировать пользователей которые подключаются к микроту по sstp/pptp о том что их VPN подключение настроенное на домашних ПК скоро перестанет работать и чтобы они следовали некой инструкции. Они авторизуются через Radius сервер, учетки берутся из АД. В общем вытащив список имен мне будет достаточно просто прилепить к ним @company.com и я получу их почтовые адреса.
На микроте в данный момент +- 400 активных клиентов.

Я был уверен что при помощи функции GET я без проблем вытащу весь список, но я так и не понял почему указав конкретное имя команда срабатывает, а если указываю "вывести всех", то выпадает ошибка....или это баг микрота?


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

sektor1100 писал(а): 27 апр 2020, 22:33 если указываю "вывести всех", то выпадает ошибка
Нет, ваша конструкция find name!=all читается - найти имя не равное всем. В RouterOs такое не прокатит. Слишком урезанная командная строка. Поэтому foreach. В итоге после цикла будет список имён. У меня нет сейчас такой возможности проверить, но в первом приближении будет что-то типа

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

:foreach r in=[ppp active find name!=""] do={:put [ppp active get $r name]}
Конечно, область работы скрипта не стоит описывать таким выражением, лучше зацепится за что-то другое. Но, как я уже говорил, не на чем это проверить. Уже в теле цикла в принципе всё нормально. Естественно, вместо put лучше загонять имена в переменную, либо сразу обрабатывать как нужно. Но раз вы там такое количество обслуживаете, думаю что там дальше, сообразите.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
sektor1100
Сообщения: 3
Зарегистрирован: 27 апр 2020, 18:20

podarok66 писал(а): 28 апр 2020, 12:14
sektor1100 писал(а): 27 апр 2020, 22:33 если указываю "вывести всех", то выпадает ошибка
Нет, ваша конструкция find name!=all читается - найти имя не равное всем. В RouterOs такое не прокатит. Слишком урезанная командная строка. Поэтому foreach. В итоге после цикла будет список имён. У меня нет сейчас такой возможности проверить, но в первом приближении будет что-то типа

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

:foreach r in=[ppp active find name!=""] do={:put [ppp active get $r name]}
Конечно, область работы скрипта не стоит описывать таким выражением, лучше зацепится за что-то другое. Но, как я уже говорил, не на чем это проверить. Уже в теле цикла в принципе всё нормально. Естественно, вместо put лучше загонять имена в переменную, либо сразу обрабатывать как нужно. Но раз вы там такое количество обслуживаете, думаю что там дальше, сообразите.
Благодарю за развернутый ответ. Завтра попробую ваш совет использовать данный цикл. На данный момент я просто написал не большой скрипт на питоне и выдернул все учетки тем самым решив свою проблему )))


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

sektor1100 писал(а): 28 апр 2020, 23:05 На данный момент я просто написал не большой скрипт на питоне и выдернул все учетки тем самым решив свою проблему )))
Ну так это же отлично. Не важно, через какой переулок добираться, главное попасть домой)))


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить