#!/bin/sh ENABLE=yes NAME=Ethernet IPADDRESS=192.168.1.20 CIDRLEN= NETWORK=192.168.1.0 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 BROADCAST= DHCP=no CIDRLEN=24 NETWORK=192.168.1.0 netinfo() { local ipaddr=$1 netmask=$2 oifs=${IFS} mask=255 local ipb1 ipb2 ipb3 ipb4 nmb1 nmb2 nmb3 nmb4 IFS=. set -- ${ipaddr}; ipb1=${1}; ipb2=${2}; ipb3=${3}; ipb4=${4} set -- ${netmask}; nmb1=${1}; nmb2=${2}; nmb3=${3}; nmb4=${4} IFS=$SaveIFS local network bcast network=$(($ipb1 & $nmb1)).$(($ipb2 & $nmb2)).$(($ipb3 & $nmb3)).$(($ipb4 & $nmb4)) bcast=$(($ipb1 | ($mask ^ $nmb1))).$(($ipb2 | ($mask ^ $nmb2))).$(($ipb3 | ($mask ^ $nmb3))).$(($ipb4 | ($mask ^ $nmb4))) _RET_NETWORK=${network} _RET_BCAST=${bcast} } iface="${1:-eth0}" file=${2:-/etc/network/interfaces} [ "$file" = "-" ] || exec <"$file" hash="#" cur_iface="" found=0 while read line; do line=${line%%${hash}*} [ -n "$line" ] || continue set -- ${line} case $1 in auto) [ "$2" = "$iface" ] && ENABLE=yes;; iface) [ "$2" = "$iface" ] || continue; # if its not static, let the default path handle [ "$4" = "static" ] || { DHCP=yes; continue; } cur_iface=$2 found=1 ;; *) [ "$cur_iface" = "$iface" ] || continue; case $1 in address) IPADDRESS=${2};; netmask) NETMASK=${2};; gateway) GATEWAY=${2};; address) IPADDRESS=${2};; esac ;; esac done [ -n "$IPADDRESS" -a -n "$NETMASK" ] && netinfo "$IPADDRESS" "$NETMASK" && BROADCAST=${_RET_BCAST} cat <