123456789101112131415161718192021222324252627282930313233 |
- #!/bin/sh
- checkmd5(){
- local nowmd5=$(md5sum /etc/hosts)
- nowmd5=${nowmd5%% *}
- local lastmd5=$(uci get AdGuardHome.AdGuardHome.hostsmd5 2>/dev/null)
- if [ "$nowmd5" != "$lastmd5" ]; then
- uci get AdGuardHome.AdGuardHome.hostsmd5="$nowmd5"
- uci commit AdGuardHome
- [ "$1" == "noreload" ] || /etc/init.d/AdGuardHome reload
- fi
- }
- [ "$1" == "del" ] && sed -i '/programaddstart/,/programaddend/d' /etc/hosts && checkmd5 "$2" && exit 0
- /usr/bin/awk 'BEGIN{
- while ((getline < "/tmp/dhcp.leases") > 0)
- {
- a[$2]=$4;
- }
- while (("ip -6 neighbor show | grep -v fe80" | getline) > 0)
- {
- if (a[$5]) {print $1" "a[$5] >"/tmp/tmphost"; }
- }
- print "#programaddend" >"/tmp/tmphost";
- }'
- grep programaddstart /etc/hosts >/dev/null 2>&1
- if [ "$?" == "0" ]; then
- sed -i '/programaddstart/,/programaddend/c\#programaddstart' /etc/hosts
- sed -i '/programaddstart/'r/tmp/tmphost /etc/hosts
- else
- echo "#programaddstart" >>/etc/hosts
- cat /tmp/tmphost >> /etc/hosts
- fi
- rm /tmp/tmphost
- checkmd5 "$2"
|