diff --git a/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh b/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh index 057fe9258..e643c7559 100644 --- a/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh +++ b/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh @@ -672,7 +672,7 @@ get_registered_ip() { } || { # we need to run twice because multi-line output needs to be directly piped to grep because # pipe returns return code of last prog in pipe but we need errors from host command - __IP=$(eval $__RUNPROG | grep "^$domain" | grep -m 1 -o "$__REGEX") + __IP=$(eval $__RUNPROG | awk -F "address " '/has/ {print $2; exit}' ) } elif [ -x /usr/bin/nslookup ]; then # last use BusyBox nslookup @@ -692,7 +692,7 @@ get_registered_ip() { } || { # we need to run twice because multi-line output needs to be directly piped to grep because # pipe returns return code of last prog in pipe but we need errors from nslookup command - __IP=$(eval $__RUNPROG | sed '1,2d' | grep -o "Name:\|Address.*" | grep -m 1 -o "$__REGEX") + __IP=$(eval $__RUNPROG | sed -ne "3,\$ { s/^Address [0-9]*: \($__REGEX\).*$/\\1/p }" ) } else # there must be an error