Skip to main content
host AsusZENWifi2 {
                hardware ethernet f0:2f:74:74:15:d0;
                fixed-address 192.168.50.11;
                option host-name "ASUS-ZenWiFi-2";
                }
on commit {
        set noname = concat("dhcp-", binary-to-ascii(10, 8, "-", leased-address));
        set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
        set ClientDHCID = concat (
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,1,1))),2), ":",
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,2,1))),2), ":",
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,3,1))),2), ":",
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,4,1))),2), ":",
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":",
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2)
        );
        set ClientName = pick-first-value(option host-name, config-option-host-name, client-name, noname);
        log(concat("Commit: IP: ", ClientIP, " DHCID: ", ClientDHCID, " Name: ", ClientName));
        execute("/usr/local/bin/dhcp-dyndns.sh", "add", ClientIP, ClientDHCID, ClientName);
        }

on release {
        set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
        set ClientDHCID = concat (
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,1,1))),2), ":",
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,2,1))),2), ":",
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,3,1))),2), ":",
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,4,1))),2), ":",
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":",
        suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2)
        );
        log(concat("Release: IP: ", ClientIP));
        execute("/usr/local/bin/dhcp-dyndns.sh", "delete", ClientIP, ClientDHCID);
        }

on expiry {
        set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
        # cannot get a ClientMac here, apparently this only works when actually receiving a packet
        log(concat("Expired: IP: ", ClientIP));
        # cannot get a ClientName here, for some reason that always fails
        # however the dhcp update script will obtain the short hostname.
        execute("/usr/local/bin/dhcp-dyndns.sh", "delete", ClientIP, "", "0");
}

Samba hostname host-name over-ride

Change dhcp-<IP ADDRESS>

If you want the updated DNS to reflect the hostnames you set in your dhcpd.conf use host-decl-name in your on commit statement

set ClientName = pick-first-value( ucase(host-decl-name), option local-host-name, option host-name, config-option-host-name, client-name, noname);