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 del "$ip" prefixlen "$prefixlen" || true ifconfig "$interface" inet6 add "$ip" prefixlen "$prefixlen" 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" del "$ip" netmask "$netmask" || true ifconfig "$interface" add "$ip" netmask "$netmask" 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" }