All pastes #1321873 Raw Edit

Anonymous

public text v1 · immutable
#1321873 ·published 2009-01-29 16:47 UTC
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