aboutsummaryrefslogtreecommitdiff
#!/bin/sh
set -eu

usage() {
	cat <<-'EOF'
		Usage:
		  getip [-4|-6]
		  getip -h
	EOF
}

help() {
	cat <<-'EOF'


		Options:
		  -4            get IPv4
		  -6            get IPv6 (default)
		  -h, --help    show this message


		The the internet facing IP address of the current machine.


		Examples:

		  Expose IPv6::

		    $ echo "http://$(getip -6)/sub/" >> index.html
	EOF
}


for flag in "$@"; do
	case "$flag" in
		(--)
			break
			;;
		(--help)
			usage
			help
			exit
			;;
		(*)
			;;
	esac
done

V=6
while getopts '46h' flag; do
	case "$flag" in
		(4)
			V=4
			;;
		(6)
			V=6
			;;
		(h)
			usage
			help
			exit
			;;
		(*)
			usage >&2
			exit 2
			;;
	esac
done
shift $((OPTIND - 1))


curl -s https://euandre.org/b/ipv"$V"