37 lines
		
	
	
		
			704 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			704 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 |