From: Alexander Traud Date: Wed, 26 Aug 2020 15:43:13 +0000 (+0200) Subject: sip_nat_settings: Update script for latest Linux. X-Git-Tag: 17.8.0-rc1~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fbc019301570d58b4d05a723773035a0c0c7d49c;p=thirdparty%2Fasterisk.git sip_nat_settings: Update script for latest Linux. With the latest Linux, 'ifconfig' is not installed on default anymore. Furthermore, the output of the current net-tools 'ifconfig' changed. Therefore, parsing failed. This update uses 'ip addr show' instead. Finally, the service for the external IP changed. Change-Id: I9b1a7c3f457e3553b50a3e9a55524e40d70245a0 --- diff --git a/contrib/scripts/sip_nat_settings b/contrib/scripts/sip_nat_settings index 2a4fc07ea6..444fb67c3e 100755 --- a/contrib/scripts/sip_nat_settings +++ b/contrib/scripts/sip_nat_settings @@ -31,16 +31,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -WGET=`which wget` -FETCH=`which fetch` -if [ -x ${WGET} ]; then - externip=`${WGET} -q -O- http://www.whatismyip.org` -elif [ -x ${FETCH} ]; then - externip=`${FETCH} -q -o - http://www.whatismyip.org` -else - echo "no binary found to contact http://www.whatismyip.org" - exit 1 -fi +# see http://unix.stackexchange.com/q/22615 +externip=`dig @resolver1.opendns.com -4 myip.opendns.com A +short` # optional parameter: network interface to use. By default: none. IFACE="$1" @@ -49,8 +41,11 @@ OS=`uname -s` case "$OS" in Linux) echo "externip = $externip" - /sbin/ifconfig $IFACE | grep 'inet addr:' | grep Bcast \ - | sed -e 's/^.*Bcast:\([0-9.]*\)\s*Mask:\([0-9.]*\)\s*$/localnet = \1\/\2/' + if [ -x "${IFACE}" ]; then + ip --brief -family inet address show scope global up dev $IFACE | awk '{print "localnet = " $3}' + else + ip --brief -family inet address show scope global up | awk '{print "localnet = " $3}' + fi ;; OpenBSD|FreeBSD) if [ "${OS}" = "FreeBSD" ]; then