#!/bin/bash
echo "----------"
echo "|Welcome!|"
echo "----------"
echo
echo "Choose an option: "
echo "[1] Change DNS server"
echo "[2] Find host via DNS resolution"
echo "[3] Show available network interfaces"
echo "[4] Restart network interfaces"
echo "[5] Trace the route to a host"
echo "[6] Test open TCP port on a specified host"
echo "[7] Update OS"
read option
if (( option == "1" ))
then
echo "[*]Input the new DNS Server IP address: "
read dnsIP
echo $dnsIP
# The IP addresses of your DNS servers are stored in resolv.conf
rm /etc/resolv.conf
touch /etc/resolv.conf
echo -e "nameserver \c" >> /etc/resolv.conf
echo $dnsIP >> /etc/resolv.conf
echo "[*]DNS server changed."
echo "[*]Printing DNS configuration file"
cat /etc/resolv.conf
echo
echo "[*]Do you want to test the new DNS server configuration?(Y/N)"
read response
if (($response = "y" )) || (($response = "Y" ))
then
echo "[*]What host do you want to ping?(ex:www.google.ca)"
read host
echo -e "[*]Pinging: \c"
echo $host
ping -c 2 $host
else
echo "[*]Bye.[*]"
fi
fi
if (( option == "2" ))
then
echo "[*]Input host name: (ex: www.google.ca or 8.8.8.8)"
touch temp
read hostname
# DNS resolution is done with nslookup
nslookup $hostname > temp
while read -r line
do
if [[ $line = *Address* ]] && [[ $line != *#* ]]
then
echo $line
fi
if [[ $line = *name* ]]
then
echo -e "Name: \c"
echo $line| cut -d ' ' -f 4
fi
done < "temp"
rm temp
fi
if (( option == "3" ))
then
echo "--------------------"
echo "Available Interfaces"
echo "--------------------"
echo
touch temp
# Store network info in a temporary file
ip addr show > temp
# Parses the file data and outputs the relevant info on the screen
while read -r line
do
if [[ $line = *\<* ]]
then
echo $line| cut -d' ' -f 2| cut -d':' -f 1
fi
if [[ $line = *inet* ]] && [[ $line = *host* ]] && [[ $line = *lo* ]]
then
echo -e "[*]IP Address:\c"
echo $line| cut -d '/' -f 1| cut -d't' -f 2
echo
fi
if [[ $line = *inet* ]] && [[ $line = *brd* ]]
then
echo -e "[*]IP Address:\c"
echo $line| cut -d '/' -f 1| cut -d't' -f 2
echo
fi
done < "temp"
rm temp
fi
if (( option == "4" ))
then
echo "[*]---!!!WARNING!!!---[*]"
echo "[*]This may cause loss of internet connection!"
echo "[*]Do you wish to proceed restarting the network interfaces?(Y/N)"
echo
read answer
if (($answer = "y" )) || (($answer = "Y" ))
then
# Restarting network interfaces, but I have observed that static routes may still persist
/etc/init.d/networking restart
echo "[*]Network interfaces restarted."
else
echo "[*]Bye."
fi
fi
if ((option == "5" ))
then
echo "[*]Input the host name: (ex: www.google.com)"
read host
# Nothing new here
traceroute $host
fi
if ((option == "6" ))
then
echo "[*]Input host IP address: "
read host
echo "[*]Input port number: "
read port
timeout 1 bash -c "echo >/dev/tcp/$host/$port" && echo "[*]Port $port is open" || echo "[*]Port $port is closed"
fi
if ((option == "7" ))
then
echo "Updating OS: "
apt-get update && echo 'y' | apt-get upgrade
fi
Thoughts, backup of reads and liked courses, dumping grounds, references, old scripts, etc.