#!/opt/bin/zsh HF="/tmp/dns/hosts" prefix=$(ip addr show br0 scope global|grep inet6|awk '{print $2}'|sed -e "s//64//" -e "s/::1$//"); (echo -n '# ';date)> "${HF}" for i in $(cat /tmp/dnsmasq.log|awk '{print $4"::::"$2}') do host=$(echo "${i}"|awk -F:::: '{print $1}') mac=$(echo "${i}"|awk -F:::: '{print $2}') addr=$(echo "${mac}"|awk -F: '{printf "%s" substr($1,1,length($1)-1); system("echo -n "substr(toupper($1),length($1))" | sed -e y/0123456789ABCDEF/23016745AB89EFCD/"); print$2":"$3"FF:FE"$4":"$5$6}' | awk -F: '{gsub("^0 ","",$1);gsub("^0 ","",$2);gsub("^0 ","",$3);gsub("^0 ","",$4); gsub("^$",0,$1); gsub("^$",0,$4); printf "%s:%s:%s:%s",$1,$2,$3,$4}'|tr '[:upper:]' '[:lower:]') echo -e "${prefix}:0:${addr}t${host}">> "${HF}" done; for i in $(seq 0 $(($(nvram get dhcp_staticnum_x)-1))) do host=$(nvram get dhcp_staticname_x"${i}") mac=$(nvram get dhcp_staticmac_x"${i}"|sed -r "{s/(.{2})/1:/g; s/:$//g}") addr=$(echo "${mac}"|awk -F: '{printf "%s" substr($1,1,length($1)-1); system("echo -n "substr(toupper($1),length($1))" | sed -e y/0123456789ABCDEF/23016745AB89EFCD/"); print$2":"$3"FF:FE"$4":"$5$6}' | awk -F: '{gsub("^0 ","",$1);gsub("^0 ","",$2);gsub("^0 ","",$3);gsub("^0 ","",$4); gsub("^$",0,$1); gsub("^$",0,$4); printf "%s:%s:%s:%s",$1,$2,$3,$4}'|tr '[:upper:]' '[:lower:]') echo -e "${prefix}:0:${addr}t${host}">> "${HF}" done echo -e "${prefix}::1ttt$(hostname)">> "${HF}" sort -u "${HF}" -o "${HF}" killall -HUP dnsmasq