#!/bin/bash

while [ 1 ]
do
	clear

	echo "Please choose the way to link the internet ( 1 to 3 ) :"
	echo ""
        echo "Using the traditional fixed IP method please choose 1"
	echo ""
        echo "Using the DHCP method please choose 2 "
	echo ""
	echo "Using the PPPoE method please choose 3"
	echo ""
        echo -n "Please enter your choice ( 1 to 3 ) : "
	read mode
	echo ""

	echo "Link Type     = $mode"
	echo ""

	echo -n "Please confirm the message ?(y/n) : "
	read ans

	if [ "$ans" = "N" ]||[ "$ans" = "n" ]
	then
		break

	elif [ "$ans" = "Y" ]||[ "$ans" = "y" ]
	then
		clear

		if [ "$mode" = "1" ]
		then			
			echo -n "Please input old IP : "
			read oIP
			echo ""

			echo -n "Please input new IP : "
			read nIP
			echo ""

			echo -n "Please input new subnetmask : "
			read netmask
			echo ""

			echo -n "Please input new gateway : "
			read gateway
			echo ""

			echo "Old IP		= $oIP"
			echo "New IP		= $nIP"
			echo "New subnetmask	= $netmask"
			echo "New gateway	= $gateway"
			echo ""

			echo -n "Please confirm the new IP information ?(y/n) : "
			read ans


			if [ "$ans" = "N" ]||[ "$ans" = "n" ]
			then
				echo ""
				echo ""
				echo "Please type \"./changeIP.sh\" or \"/mnt/floppy/./changeIP.sh\" and try again .."
				echo ""
				echo ""
				break

			elif [ "$ans" = "Y" ]||[ "$ans" = "y" ]
			then
				if [ -n "`cat /etc/sysconfig/network-scripts/ifcfg-ppp0`" ]
				then

					rm -rf  /etc/sysconfig/network-scripts/ifcfg-ppp0
					
					echo "NETMASK=" >> /etc/sysconfig/network-scripts/ifcfg-eth0
					echo "GATEWAY=" >> /etc/sysconfig/network
					
					sed '/autoconnect.sh/d' /etc/crontab > /tmp/tmp1
					cat /tmp/tmp1 > /etc/crontab

					sed '/EXT_IF=/cEXT_IF=eth0' /etc/rc.d/firewall > /tmp/tmp1
					cat /tmp/tmp1 > /etc/rc.d/firewall

					sed '/EXT_IF=/cEXT_IF=eth0' /etc/rc.d/nat > /tmp/tmp1
					cat /tmp/tmp1 > /etc/rc.d/nat
										
				elif [ -n "`grep 'BOOTPROTO=dhcp' /etc/sysconfig/network-scripts/ifcfg-eth0`"]
				then
					
					echo "IPADDR=" >> /etc/sysconfig/network-scripts/ifcfg-eth0
					echo "NETMASK=" >> /etc/sysconfig/network-scripts/ifcfg-eth0
					sed '/BOOTPROTO=/cBOOTPROTO=static' /etc/sysconfig/network-scripts/ifcfg-eth0 > /tmp/tmp1
					cat /tmp/tmp1 > /etc/sysconfig/network-scripts/ifcfg-eth0

				elif [ -n "`grep 'BOOTPROTO=static' /etc/sysconfig/network-scripts/ifcfg-eth0`" ]
				then
					#Do nothing.
					echo ""
				else
					echo ""
					echo "The system edition does not match , please contact the system manager ."
					break
				fi

				echo "$oIP" > /tmp/oIP
				echo "$nIP" > /tmp/nIP
				oIP4=`gawk -F. '{print $4}' /tmp/oIP`
				nIP4=`gawk -F. '{print $4}' /tmp/nIP`
				domainname=`echo $(cat /etc/resolv.conf)|gawk '{print $2}'`
				
				sed "/^IPADDR=/c IPADDR=$nIP" /etc/sysconfig/network-scripts/ifcfg-eth0 > /tmp/tmp1
				cat /tmp/tmp1 > /etc/sysconfig/network-scripts/ifcfg-eth0
				sed "/^NETMASK=/c NETMASK=$netmask" /etc/sysconfig/network-scripts/ifcfg-eth0 > /tmp/tmp1
				cat /tmp/tmp1 > /etc/sysconfig/network-scripts/ifcfg-eth0

				sed "/^GATEWAY=/c GATEWAY=$gateway" /etc/sysconfig/network > /tmp/tmp1
				cat /tmp/tmp1 > /etc/sysconfig/network

				sed "s/$oIP/$nIP/" /etc/named.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/named.conf
				
				sed "s/$oIP/$nIP/" /var/named/named.zone > /tmp/tmp1
				cat /tmp/tmp1 > /var/named/named.zone

				sed "s/^$oIP4\tIN\tPTR/$nIP4\tIN\tPTR/" /var/named/named.arpa.zone > /tmp/tmp1
				cat /tmp/tmp1 > /var/named/named.arpa.zone

				sed "s/^$oIP/$nIP/" /etc/hosts > /tmp/tmp1
				cat /tmp/tmp1 > /etc/hosts

				sed "s/$oIP/$nIP/" /etc/resolv.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/resolv.conf

				sed "s/$oIP/$nIP/" /etc/dhcpd.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/dhcpd.conf

				sed "s/$oIP/$nIP/" /etc/httpd/conf/httpd.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/httpd/conf/httpd.conf

				sed "s/$oIP/$nIP/" /var/www/catalog/include/tmp_config.php > /tmp/tmp1
				cat /tmp/tmp1 > /var/www/catalog/include/tmp_config.php

				echo "ip=$nIP" >> /root/mail.txt
				echo "server name = $domainname" >> /root/mail.txt
				echo "更改日期：`date`" >> /root/mail.txt
				echo "/etc/rc.d/./install_mail" >> /etc/rc.d/rc.local

				echo '#!/bin/bash' >> /etc/rc.d/install_mail

				echo "mail -s IP更改-$domainname-$oIP-$nIP  service@netboss.com.tw < /root/mail.txt" >> /etc/rc.d/install_mail
				echo "mail -s IP更改-$domainname-$oIP-$nIP  joey@netboss.com.tw < /root/mail.txt" >> /etc/rc.d/install_mail
				echo 'rm -rf /root/mail.txt' >> /etc/rc.d/install_mail
				echo 'rm -rf /etc/rc.d/install_mail' >> /etc/rc.d/install_mail
				chmod 777 /etc/rc.d/install_mail
				
				echo ""
				echo ""
				echo ""
				echo "Setup complete ! "
				echo ""
				echo "System will reboot after 5 seconds ... "
				echo ""
				sleep 1
				echo -e "\t 5"
				echo ""
				sleep 1
				echo -e "\t 4"
				echo ""
				sleep 1
				echo -e "\t 3"
				echo ""
				sleep 1
				echo -e "\t 2"
				echo ""
				sleep 1
				echo -e "\t 1"
				sleep 1
				reboot
				break
			else
				break	
			fi

		elif [ "$mode" = "2" ]
		then

			echo -n "Please input old IP : "
			read oIP
			echo ""

			echo -n "Please input new IP : "
			read nIP
			echo ""

			echo -n "Please input new gateway : "
			read gateway
			echo ""

			echo "Old IP		= $oIP"
			echo "New IP		= $nIP"
			echo "New gateway	= $gateway"
			echo ""

			echo -n "Please confirm the new IP information ?(y/n) : "
			read ans

						if [ "$ans" = "N" ]||[ "$ans" = "n" ]
			then
				echo ""
				echo ""
				echo "Please type \"./changeIP.sh\" or \"/mnt/floppy/./changeIP.sh\" and try again .."
				echo ""
				echo ""
				break

			elif [ "$ans" = "Y" ]||[ "$ans" = "y" ]
			then
				if [ -n "`cat /etc/sysconfig/network-scripts/ifcfg-ppp0`" ]
				then

					rm -rf  /etc/sysconfig/network-scripts/ifcfg-ppp0
					
					echo "NETMASK=" >> /etc/sysconfig/network-scripts/ifcfg-eth0
					echo "GATEWAY=" >> /etc/sysconfig/network
					
					sed '/autoconnect.sh/d' /etc/crontab > /tmp/tmp1
					cat /tmp/tmp1 > /etc/crontab

					sed '/EXT_IF=/cEXT_IF=eth0' /etc/rc.d/firewall > /tmp/tmp1
					cat /tmp/tmp1 > /etc/rc.d/firewall

					sed '/EXT_IF=/cEXT_IF=eth0' /etc/rc.d/nat > /tmp/tmp1
					cat /tmp/tmp1 > /etc/rc.d/nat
										
				elif [ -n "`grep 'BOOTPROTO=dhcp' /etc/sysconfig/network-scripts/ifcfg-eth0`"]
				then
					
					echo "IPADDR=" >> /etc/sysconfig/network-scripts/ifcfg-eth0
					echo "NETMASK=" >> /etc/sysconfig/network-scripts/ifcfg-eth0
					sed '/BOOTPROTO=/cBOOTPROTO=static' /etc/sysconfig/network-scripts/ifcfg-eth0 > /tmp/tmp1
					cat /tmp/tmp1 > /etc/sysconfig/network-scripts/ifcfg-eth0

				elif [ -n "`grep 'BOOTPROTO=static' /etc/sysconfig/network-scripts/ifcfg-eth0`" ]
				then
					#Do nothing.
					echo ""
				else
					echo ""
					echo "The system edition does not match , please contact the system manager ."
					break
				fi

				echo "$oIP" > /tmp/oIP
				echo "$nIP" > /tmp/nIP
				oIP4=`gawk -F. '{print $4}' /tmp/oIP`
				nIP4=`gawk -F. '{print $4}' /tmp/nIP`
				domainname=`echo $(cat /etc/resolv.conf)|gawk '{print $2}'`

				sed "/^IPADDR=/c IPADDR=$nIP" /etc/sysconfig/network-scripts/ifcfg-eth0 > /tmp/tmp1
				cat /tmp/tmp1 > /etc/sysconfig/network-scripts/ifcfg-eth0
				sed '/BOOTPROTO=/cBOOTPROTO=dhcp' /etc/sysconfig/network-scripts/ifcfg-eth0 > /tmp/tmp1
				cat /tmp/tmp1 > /etc/sysconfig/network-scripts/ifcfg-eth0

				sed "/^GATEWAY=/c GATEWAY=$gateway" /etc/sysconfig/network > /tmp/tmp1
				cat /tmp/tmp1 > /etc/sysconfig/network

				sed "s/$oIP/$nIP/" /etc/named.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/named.conf
				
				sed "s/$oIP/$nIP/" /var/named/named.zone > /tmp/tmp1
				cat /tmp/tmp1 > /var/named/named.zone

				sed "s/^$oIP4\tIN\tPTR/$nIP4\tIN\tPTR/" /var/named/named.arpa.zone > /tmp/tmp1
				cat /tmp/tmp1 > /var/named/named.arpa.zone

				sed "s/^$oIP/$nIP/" /etc/hosts > /tmp/tmp1
				cat /tmp/tmp1 > /etc/hosts

				sed "s/$oIP/$nIP/" /etc/resolv.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/resolv.conf

				sed "s/$oIP/$nIP/" /etc/dhcpd.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/dhcpd.conf

				sed "s/$oIP/$nIP/" /etc/httpd/conf/httpd.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/httpd/conf/httpd.conf

				sed "s/$oIP/$nIP/" /var/www/catalog/include/tmp_config.php > /tmp/tmp1
				cat /tmp/tmp1 > /var/www/catalog/include/tmp_config.php

				echo "ip=$nIP" >> /root/mail.txt
				echo "server name = $domainname" >> /root/mail.txt
				echo "更改日期：`date`" >> /root/mail.txt
				echo "/etc/rc.d/./install_mail" >> /etc/rc.d/rc.local

				echo '#!/bin/bash' >> /etc/rc.d/install_mail

				echo "mail -s IP更改-$domainname-$oIP-$nIP  service@netboss.com.tw < /root/mail.txt" >> /etc/rc.d/install_mail
				echo "mail -s IP更改-$domainname-$oIP-$nIP  joey@netboss.com.tw < /root/mail.txt" >> /etc/rc.d/install_mail
				echo 'rm -rf /root/mail.txt' >> /etc/rc.d/install_mail
				echo 'rm -rf /etc/rc.d/install_mail' >> /etc/rc.d/install_mail
				chmod 777 /etc/rc.d/install_mail
				
				echo ""
				echo ""
				echo ""
				echo "Setup complete ! "
				echo ""
				echo "System will reboot after 5 seconds ... "
				echo ""
				sleep 1
				echo -e "\t 5"
				echo ""
				sleep 1
				echo -e "\t 4"
				echo ""
				sleep 1
				echo -e "\t 3"
				echo ""
				sleep 1
				echo -e "\t 2"
				echo ""
				sleep 1
				echo -e "\t 1"
				sleep 1
				reboot
				break
			else
				break	
			fi

		elif [ "$mode" = "3" ]
		then

			echo -n "Please input old IP : "
			read oIP
			echo ""

			echo -n "Please input new IP : "
			read nIP
			echo ""

			echo -n "Please input new connecting user ID : "
			read connect_name
			echo ""

			echo -n "Please input new connecting password : "
			read connect_passwd
			echo ""

			echo "Old IP			= $oIP"
			echo "New IP			= $nIP"
			echo "New connecting user ID	= $connect_name"
			echo "New connecting password= $connect_passwd"
			echo ""

			echo -n "Please confirm the new IP information ?(y/n) : "
			read ans


			if [ "$ans" = "N" ]||[ "$ans" = "n" ]
			then
				echo ""
				echo ""
				echo "Please type \"./changeIP.sh\" or \"/mnt/floppy/./changeIP.sh\" and try again .."
				echo ""
				echo ""
				break

			elif [ "$ans" = "Y" ]||[ "$ans" = "y" ]
			then
				if [ -n "`cat /etc/sysconfig/network-scripts/ifcfg-ppp0`" ]
				then

					rm -rf  /etc/sysconfig/network-scripts/ifcfg-ppp0
					
					echo "NETMASK=" >> /etc/sysconfig/network-scripts/ifcfg-eth0
					echo "GATEWAY=" >> /etc/sysconfig/network
					
					sed '/autoconnect.sh/d' /etc/crontab > /tmp/tmp1
					cat /tmp/tmp1 > /etc/crontab

					sed '/EXT_IF=/cEXT_IF=eth0' /etc/rc.d/firewall > /tmp/tmp1
					cat /tmp/tmp1 > /etc/rc.d/firewall

					sed '/EXT_IF=/cEXT_IF=eth0' /etc/rc.d/nat > /tmp/tmp1
					cat /tmp/tmp1 > /etc/rc.d/nat
										
				elif [ -n "`grep 'BOOTPROTO=dhcp' /etc/sysconfig/network-scripts/ifcfg-eth0`"]
				then
					
					echo "IPADDR=" >> /etc/sysconfig/network-scripts/ifcfg-eth0
					echo "NETMASK=" >> /etc/sysconfig/network-scripts/ifcfg-eth0
					sed '/BOOTPROTO=/cBOOTPROTO=static' /etc/sysconfig/network-scripts/ifcfg-eth0 > /tmp/tmp1
					cat /tmp/tmp1 > /etc/sysconfig/network-scripts/ifcfg-eth0

				elif [ -n "`grep 'BOOTPROTO=static' /etc/sysconfig/network-scripts/ifcfg-eth0`" ]
				then
					#Do nothing.
					echo ""
				else
					echo ""
					echo "The system edition does not match , please contact the system manager ."
					break
				fi

				echo "$oIP" > /tmp/oIP
				echo "$nIP" > /tmp/nIP
				oIP4=`gawk -F. '{print $4}' /tmp/oIP`
				nIP4=`gawk -F. '{print $4}' /tmp/nIP`
				domainname=`echo $(cat /etc/resolv.conf)|gawk '{print $2}'`
				
				sed "/^IPADDR=/c IPADDR=$nIP" /etc/sysconfig/network-scripts/ifcfg-eth0 > /tmp/tmp1
				cat /tmp/tmp1 > /etc/sysconfig/network-scripts/ifcfg-eth0
				sed "/^NETMASK=/d" /etc/sysconfig/network-scripts/ifcfg-eth0 > /tmp/tmp1
				cat /tmp/tmp1 > /etc/sysconfig/network-scripts/ifcfg-eth0
				
				exec > /etc/sysconfig/network-scripts/ifcfg-ppp0
				echo "USERCTL=no"
				echo "BOOTPROTO=dialup"
				echo "NAME=DSLppp0"
				echo "DEVICE=ppp0"
				echo "TYPE=xDSL"
				echo "ONBOOT=yes"
				echo "PIDFILE=/var/run/pppoe-adsl.pid"
				echo "FIREWALL=NONE"
				echo "PING=."
				echo "PPPOE_TIMEOUT=80"
				echo "LCP_FAILURE=3"
				echo "LCP_INTERVAL=20"
				echo "CLAMPMSS=1412"
				echo "CONNECT_POLL=6"
				echo "CONNECT_TIMEOUT=30"
				echo "DEFROUTE=yes"
				echo "SYNCHRONOUS=no"
				echo "ETH=eth0"
				echo "PROVIDER=DSLppp0"
				echo "USER=$connect_name"
				echo "PEERDNS=yes"
				echo "DEMAND=no"
				exec >/dev/tty

				echo "$connect_name          *            $connect_passwd" > /etc/ppp/pap-secrets

				sed "/^GATEWAY=/d" /etc/sysconfig/network > /tmp/tmp1
				cat /tmp/tmp1 > /etc/sysconfig/network

				sed '/EXT_IF=/cEXT_IF=ppp0' /etc/rc.d/firewall > /tmp/tmp1
				cat /tmp/tmp1 > /etc/rc.d/firewall

				sed '/EXT_IF=/cEXT_IF=ppp0' /etc/rc.d/nat > /tmp/tmp1
				cat /tmp/tmp1 > /etc/rc.d/nat

				sed '/autoconnect.sh/d' /etc/crontab > /tmp/tmp1
				cat /tmp/tmp1 > /etc/crontab

				exec > /usr/bin/autoconnect.sh
				echo "#!/bin/bash"
				echo ""
				echo "if [ -n \"\`ifconfig|grep ppp0\`\" ]"
				echo "then"
				echo "echo \"\""
				echo "else"
				echo "        echo \"\""
				echo "        echo \" PPPoE is not connect !!\""
				echo "        echo \" Now trying to connect ...\""
				echo "        service network restart"
				echo "        echo \"\""
				echo "        if [ -n \"\`ifconfig|grep ppp0\`\" ]"
				echo "        then"
				echo "                echo \"\""
				echo "        else"
				echo "                echo \"\""
				echo "                echo \" PPPoE is still not connect !!\""
				echo "                echo \" Please check cable .\""
				echo "                echo \" System will try to connect again after 5 minutes ...\""
				echo "        fi"
				echo "fi"
				exec > /dev/tty

				sed "s/$oIP/$nIP/" /etc/named.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/named.conf
				
				sed "s/$oIP/$nIP/" /var/named/named.zone > /tmp/tmp1
				cat /tmp/tmp1 > /var/named/named.zone

				sed "s/^$oIP4\tIN\tPTR/$nIP4\tIN\tPTR/" /var/named/named.arpa.zone > /tmp/tmp1
				cat /tmp/tmp1 > /var/named/named.arpa.zone

				sed "s/^$oIP/$nIP/" /etc/hosts > /tmp/tmp1
				cat /tmp/tmp1 > /etc/hosts

				sed "s/$oIP/$nIP/" /etc/resolv.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/resolv.conf

				sed "s/$oIP/$nIP/" /etc/dhcpd.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/dhcpd.conf

				sed "s/$oIP/$nIP/" /etc/httpd/conf/httpd.conf > /tmp/tmp1
				cat /tmp/tmp1 > /etc/httpd/conf/httpd.conf

				sed "s/$oIP/$nIP/" /var/www/catalog/include/tmp_config.php > /tmp/tmp1
				cat /tmp/tmp1 > /var/www/catalog/include/tmp_config.php

				echo "ip=$nIP" >> /root/mail.txt
				echo "server name = $domainname" >> /root/mail.txt
				echo "更改日期：`date`" >> /root/mail.txt
				echo "/etc/rc.d/./install_mail" >> /etc/rc.d/rc.local

				echo '#!/bin/bash' >> /etc/rc.d/install_mail

				echo "mail -s IP更改-$domainname-$oIP-$nIP  service@netboss.com.tw < /root/mail.txt" >> /etc/rc.d/install_mail
				echo "mail -s IP更改-$domainname-$oIP-$nIP  joey@netboss.com.tw < /root/mail.txt" >> /etc/rc.d/install_mail
				echo 'rm -rf /root/mail.txt' >> /etc/rc.d/install_mail
				echo 'rm -rf /etc/rc.d/install_mail' >> /etc/rc.d/install_mail
				chmod 777 /etc/rc.d/install_mail
				
				echo ""
				echo ""
				echo ""
				echo "Setup complete ! "
				echo ""
				echo "System will reboot after 5 seconds ... "
				echo ""
				sleep 1
				echo -e "\t 5"
				echo ""
				sleep 1
				echo -e "\t 4"
				echo ""
				sleep 1
				echo -e "\t 3"
				echo ""
				sleep 1
				echo -e "\t 2"
				echo ""
				sleep 1
				echo -e "\t 1"
				sleep 1
				reboot
				break
			else
				break	
			fi

		fi		

		break
	else 
		break
	fi
done
