#!/bin/sh

ipv4=0
ipv6=0

while [[ "$#" -gt 0 ]]; do
    case $1 in
        -4|--ipv4) ipv4=1 ;;
        -6|--ipv6) ipv6=1 ;;
        -b|--both) ipv4=1; ipv6=1 ;;
        *) echo "Unknown parameter passed: $1" ;;
    esac
    shift
done

if [ $ipv4 -eq 1 ] && [ $ipv6 -eq 1 ]; then
    ip a | grep inet | awk '{print $2}' | sed -e /^fe80::/d | awk -F/ '{print $1}' | sort -u
elif [ $ipv4 -eq 1 ] ; then
    ip a | grep 'inet ' | awk '{print $2}' | awk -F/ '{print $1}' | sort -u
elif [ $ipv6 -eq 1 ] ; then
    ip a | grep 'inet6 ' | awk '{print $2}' | sed -e /^fe80::/d | awk -F/ '{print $1}' | sort -u
else
    echo "Usage:"
    echo "-4|--ipv4    list only IPv4 addresses"
    echo "-6|--ipv6    list only IPv6 addresses"
    echo "--both       list both IP4 and IPv6 addresses"
    echo ""
    exit 1
fi