[Решено]Автоматическое добавление хостов в dns
-
- Сообщения: 98
- Зарегистрирован: 25 ноя 2014, 12:27
Собственно как? Есть группа mikrotik 951Ui, раздают адреса по dhcp, на клиентах настроены адекватные сетевые имена(латиница+цифры без доп. символов), необходимо автоматически присваивать им dns запись и удалять если хост не доступен сутки(хотя удаление это не самая важная задача). Встроенные средств не нашел, есть мысль использовать скрипт, но не нашел способ как сделать выборку записей ip dhcp-server leases get требует указания номеров записей(нельзя выбрать все и запрашивать из них необходимые значения).
Последний раз редактировалось Senter 25 дек 2014, 11:50, всего редактировалось 1 раз.
- simpl3x
- Модератор
- Сообщения: 1532
- Зарегистрирован: 19 апр 2012, 14:03
если еще актуально
проходим по всему списку лизов, создаем локальные переменные hostname и ipaddr, а дальше делаем с ними что хотим.
читать тут: http://wiki.mikrotik.com/wiki/Manual:Scripting
Код: Выделить всё
foreach i in [/ip dhcp-server lease find] do [local hostname [/ip dhcp-server lease get $i host-name]; local ipaddr [/ip dhcp-server lease get $i active-address ]; put $hostname; put $ipaddr ]
проходим по всему списку лизов, создаем локальные переменные hostname и ipaddr, а дальше делаем с ними что хотим.
читать тут: http://wiki.mikrotik.com/wiki/Manual:Scripting
-
- Сообщения: 98
- Зарегистрирован: 25 ноя 2014, 12:27
Спасибо, попробую
Получилось так, может кому еще пригодится:
Получилось так, может кому еще пригодится:
Код: Выделить всё
:local exists
:local hostname
:local ipaddr
:local dom (".".[/system identity get name].".loc")
:foreach i in [/ip dhcp-server lease find dynamic=0] do={
:set hostname ([/ip dhcp-server lease get $i host-name].$dom)
:set ipaddr [/ip dhcp-server lease get $i active-address]
:set exists 0
:foreach j in [/ip dns static find] do={
:if ([/ip dns static get number=$j name]=$hostname) do={
:set exists 1
:if ([/ip dns static get $j address]!=$ipaddr) do={
/ip dns static set number=$j address=$ipaddr
}
}
}
:if ($exists=0) do={
/ip dns static add name=$hostname address=$ipaddr ttl="12:00:00"
}
}