#!/bin/sh
# args:
# base host masklen
# [gw=net+1]
# 
NET=$1
HOSTOFF=$2
CIDR=$3
set -- $(echo $NET | sed -e 's/\./ /g')
HOST=$1.$2.$3.$HOSTOFF
GW=$1.$2.$3.$(expr $4 + 1)
BCAST=$1.$2.$3
BBASE=$4
MASK=255.255.255
case $CIDR in
 16) MASK=255.255.0; LOMASK=0 ;;
 24) LOMASK=$(expr 255 - 255) ;;
 25) LOMASK=$(expr 255 - 127) ;;
 26) LOMASK=$(expr 255 - 63) ;;
 27) LOMASK=$(expr 255 - 31) ;;
 28) LOMASK=$(expr 255 - 15) ;;
 29) LOMASK=$(expr 255 - 7) ;;
 30) LOMASK=$(expr 255 - 3) ;;
 31) LOMASK=$(expr 255 - 1) ;;
 32) LOMASK=$(expr 255 - 0) ;;
esac
MASK=$MASK.$LOMASK
BCAST=$BCAST.$(expr 255 - $LOMASK + $BBASE)
set -x
ifconfig eth0 down
ifconfig eth0 $HOST netmask $MASK broadcast $BCAST up
route add -net $NET eth0
route add -net default gw $GW
