mirror of
https://git.eworm.de/cgit/routeros-scripts
synced 2025-06-23 10:08:40 +02:00
dhcp-to-dns: act on bound leases only
This commit is contained in:
parent
cf79e6c473
commit
0560f828d1
1 changed files with 4 additions and 4 deletions
|
@ -22,7 +22,7 @@
|
||||||
:foreach DnsRecord in=[ / ip dns static find where comment ~ $CommentPrefix ] do={
|
:foreach DnsRecord in=[ / ip dns static find where comment ~ $CommentPrefix ] do={
|
||||||
:local DnsRecordVal [ / ip dns static get $DnsRecord ];
|
:local DnsRecordVal [ / ip dns static get $DnsRecord ];
|
||||||
:local MacAddress [ $CharacterReplace ($DnsRecordVal->"comment") $CommentPrefix "" ];
|
:local MacAddress [ $CharacterReplace ($DnsRecordVal->"comment") $CommentPrefix "" ];
|
||||||
:if ([ / ip dhcp-server lease print count-only where mac-address=$MacAddress address=($DnsRecordVal->"address") dynamic=yes ] > 0) do={
|
:if ([ / ip dhcp-server lease print count-only where mac-address=$MacAddress address=($DnsRecordVal->"address") dynamic=yes status=bound ] > 0) do={
|
||||||
:log debug ("Lease for " . $MacAddress . " (" . $DnsRecordVal->"host-name" . ") still exists. Not deleting DNS entry.");
|
:log debug ("Lease for " . $MacAddress . " (" . $DnsRecordVal->"host-name" . ") still exists. Not deleting DNS entry.");
|
||||||
} else={
|
} else={
|
||||||
:local Found false;
|
:local Found false;
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:foreach Lease in=[ / ip dhcp-server lease find where dynamic=yes ] do={
|
:foreach Lease in=[ / ip dhcp-server lease find where dynamic=yes status=bound ] do={
|
||||||
:local LeaseVal [ / ip dhcp-server lease get $Lease ];
|
:local LeaseVal [ / ip dhcp-server lease get $Lease ];
|
||||||
:local Comment ($CommentPrefix . $LeaseVal->"mac-address");
|
:local Comment ($CommentPrefix . $LeaseVal->"mac-address");
|
||||||
:local HostName [ $CharacterReplace ($LeaseVal->"host-name") " " "" ];
|
:local HostName [ $CharacterReplace ($LeaseVal->"host-name") " " "" ];
|
||||||
|
@ -44,13 +44,13 @@
|
||||||
:if ([ :len $DnsRecord ] > 0) do={
|
:if ([ :len $DnsRecord ] > 0) do={
|
||||||
:local DnsIp [ / ip dns static get $DnsRecord address ];
|
:local DnsIp [ / ip dns static get $DnsRecord address ];
|
||||||
|
|
||||||
:local DupMacLeases [ / ip dhcp-server lease find where mac-address=($LeaseVal->"mac-address") dynamic=yes ];
|
:local DupMacLeases [ / ip dhcp-server lease find where mac-address=($LeaseVal->"mac-address") dynamic=yes status=bound ];
|
||||||
:if ([ :len $DupMacLeases ] > 1) do={
|
:if ([ :len $DupMacLeases ] > 1) do={
|
||||||
:set ($LeaseVal->"address") [ / ip dhcp-server lease get ($DupMacLeases->([ :len $DupMacLeases ] - 1)) address ];
|
:set ($LeaseVal->"address") [ / ip dhcp-server lease get ($DupMacLeases->([ :len $DupMacLeases ] - 1)) address ];
|
||||||
}
|
}
|
||||||
|
|
||||||
:if ([ :len ($LeaseVal->"host-name") ] > 0) do={
|
:if ([ :len ($LeaseVal->"host-name") ] > 0) do={
|
||||||
:set ($LeaseVal->"address") [ / ip dhcp-server lease get ([ find where host-name=($LeaseVal->"host-name") dynamic=yes ]->0) address ];
|
:set ($LeaseVal->"address") [ / ip dhcp-server lease get ([ find where host-name=($LeaseVal->"host-name") dynamic=yes status=bound ]->0) address ];
|
||||||
}
|
}
|
||||||
|
|
||||||
:if ($DnsIp = $LeaseVal->"address") do={
|
:if ($DnsIp = $LeaseVal->"address") do={
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue