From 3340f36d2e4d2d3fa8b558dbe315cb3df027c609 Mon Sep 17 00:00:00 2001 From: Ivan Rako Date: Mon, 2 Jul 2018 23:21:23 +0200 Subject: [PATCH] sad se koristi ip umjesto ifconfig --- debian/changelog | 2 +- functions.sh | 36 ++++++++++++++++++++++++------------ 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/debian/changelog b/debian/changelog index acfdf58..81e05f2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,7 +2,7 @@ carnet-tools-cn (3.2.0) stable; urgency=low * Minimalne izmjene u paketu za Debian stretch * Izmjene u funkcijama cp_get_ifaddr i cp_get_ifmask zbog drugacijeg - outputa naredbe ifconfig + outputa naredbe ifconfig - sad se koristi naredba ip -- Ivan Rako Fri, 27 Apr 2018 09:28:03 +0200 diff --git a/functions.sh b/functions.sh index 37bd113..7f03924 100644 --- a/functions.sh +++ b/functions.sh @@ -5,6 +5,7 @@ if [ -z "$_CP_INIT_ECHO_RETURN" ]; then fi # by ddzeko & ico, Fri, 18 Mar 2005 14:44:08 +0100 +# modified by irako, Mon, 02 Jul 2018 21:46:29 +0200 cp_get_ifaddr() { [ "$CP_SCRIPT_DEBUG" ] && set -vx @@ -21,14 +22,16 @@ cp_get_ifaddr() { [ -z "$interface" ] && interface=lo fi - if ! ifconfig $interface 2> /dev/null >> /dev/null; then + #if ! ifconfig $interface 2> /dev/null >> /dev/null; then + if ! ip addr show $interface 2> /dev/null >> /dev/null; then echo "cp_get_ifaddr: $interface: No such interface" 1>&2 CP_ECHO_RETURN="$echo_return" return 2 fi #ifaddr="`/sbin/ifconfig $interface | awk '/inet /{ printf("%s\n",substr($2,index($2,":")+1)) }'`" - ifaddr="`/sbin/ifconfig $interface | awk '/inet /{ printf($2) }'`" + #ifaddr="`/sbin/ifconfig $interface | awk '/inet /{ printf($2) }'`" + ifaddr="`ip -o -4 addr show $interface scope global | awk '{print $4;}' | cut -d/ -f 1 | head -1`" if [ -z $ifaddr ]; then echo "cp_get_ifaddr: $interface: No ip address found" 1>&2 @@ -42,10 +45,11 @@ cp_get_ifaddr() { } # by ddzeko & ico, Fri, 18 Mar 2005 14:44:08 +0100 +# modified by irako, Mon, 02 Jul 2018 21:46:29 +0200 cp_get_ifmask() { [ "$CP_SCRIPT_DEBUG" ] && set -vx - local ifmask interface echo_return + local ifmask interface echo_return cidr echo_return="$CP_ECHO_RETURN" # since we're making our own calls # in our own way we need to set CP_ECHO_RETURN the way we want it # but preserving initial state so it could be used afterwards @@ -58,14 +62,17 @@ cp_get_ifmask() { [ -z "$interface" ] && interface=lo fi - if ! ifconfig $interface 2> /dev/null >> /dev/null; then + #if ! ifconfig $interface 2> /dev/null >> /dev/null; then + if ! ip addr show $interface 2> /dev/null >> /dev/null; then echo "cp_get_ifmask: $interface: No such interface" 1>&2 CP_ECHO_RETURN="$echo_return" return 1 fi #ifmask="`/sbin/ifconfig $interface | awk '/Mask/{if($3~/Mask/)a=$3;else if ($4~/Mask/)a=$4;printf ("%s\n", substr(a,index(a,":")+1))}'`" - ifmask="`/sbin/ifconfig $interface | awk '/netmask /{ printf($4) }'`" + #ifmask="`/sbin/ifconfig $interface | awk '/netmask /{ printf($4) }'`" + cidr="`ip -o -4 addr show $interface scope global | awk '{print $4;}'`" + ifmask="`ipcalc -nb 161.53.0.188/28 | awk '/^Netmask:/{print $2}'`" if [ -z "$ifmask" ]; then echo "cp_get_ifmask: $interface: No netmask found" 1>&2 @@ -79,6 +86,7 @@ cp_get_ifmask() { } # by ddzeko, Mon, 21 Mar 2005 07:00:22 +0100 +# modified by irako, Mon, 02 Jul 2018 21:46:29 +0200 cp_get_ifdefault() { [ "$CP_SCRIPT_DEBUG" ] && set -vx @@ -91,14 +99,16 @@ cp_get_ifdefault() { RET="" case $1 in dev) - RET=`route -n | awk 'BEGIN {m = 2^32} - /^0\.0\.0\.0[ \t]/ {if ($5 < m) {r = $8; m = $5}} - END {print r}'` + #RET=`route -n | awk 'BEGIN {m = 2^32} + # /^0\.0\.0\.0[ \t]/ {if ($5 < m) {r = $8; m = $5}} + # END {print r}'` + RET=`ip route | grep ^default | awk '{print $5}'` ;; addr) - RET=`route -n | awk 'BEGIN {m = 2^32} - /^0\.0\.0\.0[ \t]/ {if ($5 < m) {r = $2; m = $5}} - END {print r}'` + #RET=`route -n | awk 'BEGIN {m = 2^32} + # /^0\.0\.0\.0[ \t]/ {if ($5 < m) {r = $2; m = $5}} + # END {print r}'` + RET=`ip route | grep ^default | awk '{print $3}'` ;; *) echo "cp_get_ifdefault: Argument required (dev or addr)" >&2 @@ -113,6 +123,7 @@ cp_get_ifdefault() { } # by ico, Tue, 15 Mar 2005 14:04:21 +0100 +# modified by irako, Mon, 02 Jul 2018 21:46:29 +0200 cp_get_netaddr() { [ "$CP_SCRIPT_DEBUG" ] && set -vx @@ -129,7 +140,8 @@ cp_get_netaddr() { [ -z "$interface" ] && interface=lo fi - if ! ifconfig $interface 2> /dev/null >> /dev/null; then + #if ! ifconfig $interface 2> /dev/null >> /dev/null; then + if ! ip addr show $interface 2> /dev/null >> /dev/null; then echo "cp_get_netaddr: $interface: No such interface" 1>&2 CP_ECHO_RETURN="$echo_return" return 1 -- 1.7.10.4