Код: Выделить всё
$API = new RouterosAPI();
Модератор: immortal
Код: Выделить всё
$API = new RouterosAPI();
есть идея подобное провернуть только со стороны микрота. т.е. заставить микрот отправлять данные мажердомо, ну или накрайняк написать скрипт приемника на пхп.Bagir писал(а): ↑Чт май 21, 2015 10:34 amУ меня всегда открыт коннект ))
Микротик отлично делится данными, причем ничуть не напрягаясь. Есть только нехороший момент с логами Микротика. Там куча записей об авторизации пользователя, который периодически лазает за данными. Возможно было бы лучше не рвать соединение с микротиком. Как нибудь надо будет попробовать сделать так.
Более того, если в сети несколько Микротиков (один главный, остальные ведомые), То с главного Микротика можно забирать списки всех WiFi клиентов Ведомых Микротиков. Это весьма актуально для частных домов, где один роутер не может надежно покрыть всю площадь дома и сада.
В общем сделал передачу подключенных WIFI клиентов с mikrotik в PHP скрипт. сразу скажу, что делалось все под CAPsMAN. с обычным WIFI работать не будет.Anton_V писал(а): ↑Пн май 07, 2018 10:44 pmесть идея подобное провернуть только со стороны микрота. т.е. заставить микрот отправлять данные мажердомо, ну или накрайняк написать скрипт приемника на пхп.Bagir писал(а): ↑Чт май 21, 2015 10:34 amУ меня всегда открыт коннект ))
Микротик отлично делится данными, причем ничуть не напрягаясь. Есть только нехороший момент с логами Микротика. Там куча записей об авторизации пользователя, который периодически лазает за данными. Возможно было бы лучше не рвать соединение с микротиком. Как нибудь надо будет попробовать сделать так.
Более того, если в сети несколько Микротиков (один главный, остальные ведомые), То с главного Микротика можно забирать списки всех WiFi клиентов Ведомых Микротиков. Это весьма актуально для частных домов, где один роутер не может надежно покрыть всю площадь дома и сада.
со стороны микртота идет отправка скажем массива всех зарегистрированных клиентов на точках доступа, или же даже написать анализ изменения точки регистрации (capsman - registration tab) и при изменение делать вызов php скрипта в можердоме. который уже разпихает все по нужным местам.
у кого нить есть подобные наработки? или с нуля начинать?
Добрый день. Друзья подскажите пожалуйста, у меня используется микрокомпьютер Banana PI M1 Plus с ОС Armbian, установлен с помощью скрипта установки Majordomo. Собственно заинтересовала статья по выводу данных с Mikrotik (Мой MikroTik RB951UI-2HND). Так как с php не дружу особо, то вопрос следующий: где найти объект ThisComputer. API в настройках включено, я так понимаю что в скрипте, который пишется в сценариях, в первых трёх строчках подставить свои значения, а именно ip адрес роутера, логин к нему и пароль. routeros_api.class.php положен в папку /var/www/lib Пока только осваиваюсь в системе...TheForum писал(а): ↑Чт апр 05, 2018 12:14 amА вы указали IP рутера, его логин и пароль в переменных? У меня уже пару лет скрипт работает...
По шагам (У меня win7 64bit):
1. В папку C:\_majordomo\htdocs\lib добавляете файл routeros_api.class.php;
2. Создаете у объекта ThisComputer 3 новых свойства и вводите свои данные:
ThisComputer.Mikrotik_IP
192.168.0.3 (введите свои данные)
ThisComputer.Mikrotik_login
admin
ThisComputer.Mikrotik_password
pass
ThisComputer находится Объекты -> Computer -> ThisComputer . дальше к объекту ThisComputer нужно добавить 3 новых свойства Mikrotik_IP, Mikrotik_login, Mikrotik_password.Der_Dachs писал(а): ↑Пт май 11, 2018 10:24 pmДобрый день. Друзья подскажите пожалуйста, у меня используется микрокомпьютер Banana PI M1 Plus с ОС Armbian, установлен с помощью скрипта установки Majordomo. Собственно заинтересовала статья по выводу данных с Mikrotik (Мой MikroTik RB951UI-2HND). Так как с php не дружу особо, то вопрос следующий: где найти объект ThisComputer. API в настройках включено, я так понимаю что в скрипте, который пишется в сценариях, в первых трёх строчках подставить свои значения, а именно ip адрес роутера, логин к нему и пароль. routeros_api.class.php положен в папку /var/www/lib Пока только осваиваюсь в системе...TheForum писал(а): ↑Чт апр 05, 2018 12:14 amА вы указали IP рутера, его логин и пароль в переменных? У меня уже пару лет скрипт работает...
По шагам (У меня win7 64bit):
1. В папку C:\_majordomo\htdocs\lib добавляете файл routeros_api.class.php;
2. Создаете у объекта ThisComputer 3 новых свойства и вводите свои данные:
ThisComputer.Mikrotik_IP
192.168.0.3 (введите свои данные)
ThisComputer.Mikrotik_login
admin
ThisComputer.Mikrotik_password
pass
на основе это списка можно много что сделать. например при подходе к дому/воротам/гаражу (регистрация на определенной точки доступа) включать освещение, открывать ворота гаража,выдавать сигнал кто пришел. вариантов использования множество.
К сожалению своими воротами как и домом, я ещё не обзавёлся. Есть только своя квартира. Пока тренируюсь на Banana Pi с Armbian на борту и на сервере с ОС Centos 7. MD знаю уже давно, наверное, когда он только появился, а вот руки до него дошли только сейчас...
тогда согласен. вам эта тема не особо интересна.Der_Dachs писал(а): ↑Вс май 13, 2018 1:34 pmК сожалению своими воротами как и домом, я ещё не обзавёлся. Есть только своя квартира. Пока тренируюсь на Banana Pi с Armbian на борту и на сервере с ОС Centos 7. MD знаю уже давно, наверное, когда он только появился, а вот руки до него дошли только сейчас...
Код: Выделить всё
:local ip #ищем в лизах ip соответствующий полученному mac-адресу
:local getcomment #ищем в лизах комментарий соответствующий полученному ip-адресу
:local hostname #ищем в лизах имя хоста соответствующее полученному mac-адресу
:local uptime #ищем аптайм соответствующий полученному mac-адресу
:local timenow #получаем текущее время и заносим в переменную
:local date #получаем текущую дату и заносим в переменную (дата выглядит примерно так: mar/07/2019)
:local month #из даты вытаскиваем месяц и заносим в переменную
:local day #из даты вытаскиваем день и заносим в переменную
:local year #из даты вытаскиваем год и заносим в переменную
Код: Выделить всё
:foreach i in=[/caps-man registration-table find] do={
:local mac [/caps-man registration-table get $i mac-address]
:local ip [/ip dhcp-server lease get [/ip dhcp-server lease find where mac-address="$mac"] address]
:local getcomment [/ip dhcp-server lease get [/ip dhcp-server lease find where address="$ip"] comment]
:local hostname [/ip dhcp-server lease get [/ip dhcp-server lease find where mac-address="$mac"] host-name]
:local capnumber [/caps-man registration-table get [/caps-man registration-table find where mac-address="$mac"] interface]
:local rxsignal [/caps-man registration-table get [/caps-man registration-table find where mac-address="$mac"] rx-signal]
:local uptime [/caps-man registration-table get [/caps-man registration-table find where mac-address="$mac"] uptime]
:local timenow [/system clock get time]
:local date [/sys clock get date]
:local month [:pick $date 0 [:find $date "/" 0]]
:local day [:pick $date ([:len $month] + 1) [:find $date "/" ([:len $month] + 1)]]
:local year [:pick $date ([:len $month] + 1 + [:len $day] + 1) [:len $date]]
:put "$getcomment"
:put "$hostname"
:put "$capnumber"
:put "$rxsignal"
:put "$ip"
:put "$mac"
:put "$uptime"
:put "$day $month $year $timenow"
:put ""
}