diff options
author | Christian Hesse <mail@eworm.de> | 2023-03-25 22:33:02 +0100 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2023-03-28 12:05:47 +0200 |
commit | d700dbc00e6e22ea9521d3b359f0d3635d9af682 (patch) | |
tree | 5d43b7ef1080a480d5d910a80ac6ed2c321a4b44 | |
parent | 40f0d54ea89b701afbbc1cfa2ade8913c4d137eb (diff) |
dhcp-to-dns: support host name from dhcp lease comment
The lease comment is supposed to be a human readable string... But we
could allow parsable information.
-rw-r--r-- | dhcp-to-dns.rsc | 4 | ||||
-rw-r--r-- | doc/dhcp-to-dns.md | 13 |
2 files changed, 16 insertions, 1 deletions
diff --git a/dhcp-to-dns.rsc b/dhcp-to-dns.rsc index b925fdb..259a904 100644 --- a/dhcp-to-dns.rsc +++ b/dhcp-to-dns.rsc @@ -19,8 +19,10 @@ :global ServerNameInZone; :global CharacterReplace; +:global EitherOr; :global IfThenElse; :global LogPrintExit2; +:global ParseKeyValueStore; :global ScriptLock; $ScriptLock $0 false 10; @@ -62,7 +64,7 @@ $ScriptLock $0 false 10; :if ([ :len ($LeaseVal->"address") ] > 0) do={ :local Comment ($CommentPrefix . $LeaseVal->"mac-address"); :local MacDash [ $CharacterReplace ($LeaseVal->"mac-address") ":" "-" ]; - :local HostName [ $CharacterReplace ($LeaseVal->"host-name") " " "" ]; + :local HostName [ $CharacterReplace [ $EitherOr ([ $ParseKeyValueStore ($LeaseVal->"comment") ]->"hostname") ($LeaseVal->"host-name") ] " " "" ]; :local Domain ([ $IfThenElse ($ServerNameInZone = true) ($LeaseVal->"server" . ".") ] . $Zone); :local DnsRecord [ /ip/dns/static/find where name=($MacDash . "." . $Domain) ]; diff --git a/doc/dhcp-to-dns.md b/doc/dhcp-to-dns.md index 7229c9a..a2caf0c 100644 --- a/doc/dhcp-to-dns.md +++ b/doc/dhcp-to-dns.md @@ -41,6 +41,19 @@ The configuration goes to `global-config-overlay`, these are the parameters: * `PrefixInZone`: whether or not to add prefix `dhcp` * `ServerNameInZone`: whether or not to add DHCP server name +### Host name from DHCP lease comment + +Overwriting the host name from dhcp lease comment is supported, just add +something like `hostname=new-hostname` in comment, and separate it by comma +from other information if required: + + /ip/dhcp-server/lease/add address=10.0.0.50 comment="my device, hostname=new-hostname" mac-address=00:11:22:33:44:55 server=dhcp; + +Note this information can be configured in wireless access list with +[dhcp-lease-comment](dhcp-lease-comment.md), though it comes with a delay +then due to script execution order. Decrease the scheduler interval to +reduce the effect. + See also -------- |