#!/bin/bashIpAndNetmasktoNetwork(){ # expects $1 to be an ip address # expects $2 to be a netmask local oldifs local ip local nm local ipnum local masknum local t local ipnet local prefix local ipnetnum oldifs="$IFS" IFS=. ip=($1) nm=($2) ipnum=$((ip[0]*256*256*256 + ip[1]*256*256 + ip[2]*256 + ip[3])) masknum=$((nm[0]*256*256*256 + nm[1]*256*256 + nm[2]*256 + nm[3])) IFS="$oldifs" ((ipnetnum = ipnum & masknum)) ((t=masknum)) for ((prefix=32; (t & 1) == 0; t /= 2)) do ((prefix--)) done ipnet=($ipnetnum) ipnet=$((ipnet >> 24)).$(((ipnet >> 16) & 255)).$(((ipnet >> 8) & 255)).$((ipnet & 255))/$prefix echo $ipnet}IpAddress="192.168.10.100"Netmask="255.255.255.0"Network="`IpAndNetmasktoNetwork "$IpAddress" "$Netmask"`"echo $Network