format_ip6_from_mac() { local template=$1 IFS=':'; set $2; unset IFS printf "$template" 0x${3} 0x${4} 0x${5} 0x${6} } add_ip6() { local interface=$1 local ip=$2 local prefixlen=$3 if has ip; then _add_ip_linux "$ip" "$prefixlen" "$interface" elif has ifconfig; then ifconfig "$interface" inet6 "$ip" prefixlen "$prefixlen" delete || true ifconfig "$interface" inet6 "$ip" prefixlen "$prefixlen" add else die "no suitable program found to configure the network interface, need iproute2 or ifconfig" fi } add_ip4() { local interface=$1 local ip=$2 local netmask=$3 if has ip; then local cidr="$(mask2cidr $netmask)" _add_ip_linux "$ip" "$cidr" "$interface" elif has ifconfig; then ifconfig "$interface" "$ip" netmask "$netmask" delete || true ifconfig "$interface" "$ip" netmask "$netmask" add else die "no suitable program found to set ip address, need iproute2 or ifconfig" fi } _add_ip_linux() { ip addr del "$1/$2" dev "$3" || true ip addr add "$1/$2" dev "$3" }