-
Notifications
You must be signed in to change notification settings - Fork 0
/
mikrotik-dns-update
44 lines (40 loc) · 1.1 KB
/
mikrotik-dns-update
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Domain to be added to your DHCP-clients hostname
:local topdomain;
:set topdomain "home.local";
# Use ttl to distinguish dynamic added DNS records
:local ttl;
:set ttl "00:59:59";
# Set variables to use
:local hostname;
:local hostip;
:local free;
# Remove all dynamic records
/ip dns static;
:foreach a in=[find] do={
:if ([get $a ttl] = $ttl) do={
:put ("Removing: " . [get $a name] . " : " . [get $a address]);
remove $a;
}
}
/ip dhcp-server lease ;
:foreach i in=[find] do={
/ip dhcp-server lease ;
:if ([:len [get $i host-name]] > 0) do={
:set free "true";
:set hostname ([get $i host-name] . "." . $topdomain);
:set hostip [get $i address];
/ip dns static ;
# Check if entry already exist
:foreach di in [find] do={
:if ([get $di name] = $hostname) do={
:set free "false";
:put ("Not adding already existing entry: " . $hostname);
}
}
:if ($free = true) do={
:put ("Adding: " . $hostname . " : " . $hostip ) ;
/ip dns static add name=$hostname address=$hostip ttl=$ttl;
}
}
}
/log info message="DHCP to DNS Synchronised"