PHP 8.5.2
Preview: ip_address Size: 2.98 KB
//lib/byobu/ip_address

#!/bin/sh -e
#
#    ip_address: report a host's ip address
#
#    Copyright (C) 2008-2011 Canonical Ltd.
#    Copyright (C) 2011-2014 Dustin Kirkland
#
#    Authors: Dustin Kirkland <kirkland@byobu.org>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, version 3 of the License.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.

__ip_address_detail() {
	if [ -x /sbin/ip ]; then
		/sbin/ip -4 addr list
		/sbin/ip -6 addr list
	fi
}

__ip_address() {
	local interface ipaddr cache="$BYOBU_RUN_DIR/cache.$BYOBU_BACKEND/ip_address"
	# Allow interface overrides in $BYOBU_CONFIG_DIR/statusrc
	if [ -n "$MONITORED_NETWORK" ]; then
		interface="$MONITORED_NETWORK"
	else
		case "$IPV6" in
			1|true|yes) interface=$(awk '$10 != "lo" { iface=$10 ; }; END { print iface; }' /proc/net/ipv6_route);;
			*) get_network_interface; interface="$_RET";;
		esac
	fi
	case "$IPV6" in
		1|true|yes)
			if [ "$IP_EXTERNAL" = "1" ]; then
				# Background an update
				timeout 1 wget -q -O- http://v6.ipv6-test.com/api/myip.php </dev/null >"$cache" 2>/dev/null &
				sleep 0.02
			else
				# Background an update
				if [ -x /sbin/ip ]; then
					LC_ALL=C /sbin/ip -6 addr list dev "$interface" scope global </dev/null >"$cache" 2>/dev/null &
				elif eval $BYOBU_TEST ifconfig >/dev/null 2>&1; then
					LC_ALL=c ifconfig "$interface" | grep "inet6 " | awk '{print $2}' | sed -e "s/%.*//" >"$cache" 2>/dev/null &

				fi
			fi
			[ -s "$cache" ] && read ipaddr < "$cache"
			# Print 'None' if we have no global address
			[ -z "$ipaddr" ] && ipaddr="None"
			ipaddr=${ipaddr#* inet6 }
			ipaddr=${ipaddr%%/*}
		;;
		*)
			if [ "$IP_EXTERNAL" = "1" ]; then
				timeout 1 wget -q -O- http://v4.ipv6-test.com/api/myip.php </dev/null >"$cache" 2>/dev/null &
				sleep 0.02
				[ -s "$cache" ] && read ipaddr < "$cache"
			elif metadata_available; then
				# We're in EC2, so get our public IP address
				timeout 0.2 wget -q -O- http://169.254.169.254/latest/meta-data/public-ipv4 </dev/null >"$cache" 2>/dev/null &
				sleep 0.02
				[ -s "$cache" ] && read ipaddr < "$cache"
			else
				if [ -x /sbin/ip ]; then
					ipaddr=$(LC_ALL=C /sbin/ip -4 addr list dev "$interface" scope global 2>/dev/null)
					ipaddr=${ipaddr#* inet }
					ipaddr=${ipaddr%%/*}
				elif eval $BYOBU_TEST ifconfig >/dev/null 2>&1; then
					ipaddr=$(ifconfig "$interface" | grep "inet " | awk '{print $2}')
				fi
			fi
		;;
	esac
	if [ -n "$ipaddr" ]; then
		if [ "$1" = "t" ]; then
			printf "%s" "$ipaddr"
		else
			color b w k; printf "%s" "$ipaddr"; color --
		fi
	fi
}

# vi: syntax=sh ts=4 noexpandtab

Directory Contents

Dirs: 1 × Files: 39

Name Size Perms Modified Actions
include DIR
- drwxr-xr-x 2026-01-08 12:56:08
Edit Download
1.51 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
916 B lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
4.42 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.04 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.03 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.84 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.79 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.88 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
990 B lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.78 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
2.99 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.04 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.06 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.85 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.45 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
2.98 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.10 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
4.83 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.31 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
2.61 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.61 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
3.10 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.48 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.12 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.43 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
2.15 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.97 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
2.10 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.29 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.75 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.06 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
4.18 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
960 B lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.13 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
6.36 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.64 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.53 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
1.26 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download
2.76 KB lrwxr-xr-x 2024-02-10 17:03:36
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).