#!/bin/sh echo "## Network Configuration Script ##" echo "Disabling interface eth0..." ifdown eth0 if [ $1 = "dhcp" ] then echo "Using DHCP" echo "auto lo" > interfaces echo "iface lo inet loopback" >> interfaces echo "allow-hotplug eth0" >> interfaces echo "iface eth0 inet dhcp" >> interfaces else echo "Using static" if [ $# -lt 2 -o $# -gt 3 ] then exit -1 fi addr1=`echo "$1" | sed -e 's/\./ /g' | awk '{ print $1 }'` addr2=`echo "$1" | sed -e 's/\./ /g' | awk '{ print $2 }'` addr3=`echo "$1" | sed -e 's/\./ /g' | awk '{ print $3 }'` addr4=`echo "$1" | sed -e 's/\./ /g' | awk '{ print $4 }'` mask1=`echo "$2" | sed -e 's/\./ /g' | awk '{ print $1 }'` mask2=`echo "$2" | sed -e 's/\./ /g' | awk '{ print $2 }'` mask3=`echo "$2" | sed -e 's/\./ /g' | awk '{ print $3 }'` mask4=`echo "$2" | sed -e 's/\./ /g' | awk '{ print $4 }'` varnt="" varbc="" vargw="" if [ $addr1 == "0" -o $addr1 == "255" -o $addr4 == "0" -o $addr4 == "255" ] then echo "Invalid network address: $1" exit -1 fi if [ $mask1 == "0" ] then echo "Invalid network mask: $2" exit -1 fi if [ $mask2 == "0" ] then varnt="$addr1.0.0.0" varbc="$addr1.255.255.255" vargw="$addr1.1.1.1" else if [ $mask3 == "0" ] then varnt="$addr1.$addr2.0.0" varbc="$addr1.$addr2.255.255" vargw="$addr1.$addr2.1.1" else if [ $mask4 == "0" ] then varnt="$addr1.$addr2.$addr3.0" varbc="$addr1.$addr2.$addr3.255" vargw="$addr1.$addr2.$addr3.1" fi fi fi if [ $3 ] then vargw=$3 fi echo "New settings:" echo "IP Address: $1 Network mask: $2" echo "Network: $varnt Broadcast: $varbc" echo "Gateway: $vargw" echo "auto lo" > interfaces echo "iface lo inet loopback" >> interfaces echo "allow-hotplug eth0" >> interfaces echo "iface eth0 inet static" >> interfaces echo " address $1" >> interfaces echo " netmask $2" >> interfaces echo " network $varnt" >> interfaces echo " broadcast $varbc" >> interfaces echo " gateway $vargw" >> interfaces fi echo "Updating network settings..." mv interfaces /etc/network/interfaces echo "Enabling interface eth0..." ifup eth0