rendered paste body#!/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