From 9ed1b1452daab54a0eab0d3a66e95d31609b2952 Mon Sep 17 00:00:00 2001
From: Alexander Traud <pabstraud@compuserve.com>
Date: Wed, 26 Aug 2020 17:43:13 +0200
Subject: [PATCH] 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
---
 contrib/scripts/sip_nat_settings | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

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
-- 
GitLab