37 lines
704 B
Plaintext
37 lines
704 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
|
||
|
################################
|
||
|
# Shows IP address of a given interface
|
||
|
#
|
||
|
# @param {String} interface: The network interface to check
|
||
|
# @return {String(IP)}: IP address of the interface
|
||
|
################################
|
||
|
|
||
|
dir=$(dirname $0)
|
||
|
source "$dir/util.sh"
|
||
|
|
||
|
full=""
|
||
|
short=""
|
||
|
status=0
|
||
|
|
||
|
interface=${BLOCK_INSTANCE:-eth0}
|
||
|
|
||
|
netPath=/sys/class/net
|
||
|
interfacePath=$(echo $netPath/$interface)
|
||
|
# Expand wildcard interfaces
|
||
|
interface=${interfacePath#$netPath/}
|
||
|
|
||
|
state=$(cat $interfacePath/operstate)
|
||
|
|
||
|
if [ $state == "up" ]; then
|
||
|
ips=$(ip addr show $interface | perl -n -e'/inet (.+)\// && print $1')
|
||
|
ip=${ips:-0.0.0.0}
|
||
|
|
||
|
full=$ip
|
||
|
short=$full
|
||
|
fi
|
||
|
|
||
|
echo "$full"
|
||
|
echo "$short"
|
||
|
exit $status
|