nsbin/newnameserver
Nico Schottelius d3c6e29902 Initial commit
2006-07-20 09:54:37 +02:00

118 lines
2.3 KiB
Bash
Executable file

#!/bin/bash
# Author: Nico Schottelius ( nicos@pcsystems.de )
# Last Modified by:
# Date: 20th of January 2000
# Last Changed: 20th of January
# Description: Skript which does mapping and reverse
#
# My variables :-)
host=""
ip=""
choice="y"
class=""
domain="mignet.magrathea.de"
# Title
echo "## Neuer Nameserver-Eintrag ##"
read -p "Bitte Domain eingeben ($domain) : " domain
# Check if zero domain
if [ -z "$domain" ]; then domain="mignet.magrathea.de";fi
# Main loop for more than one host in a domain
while [ "$choice" = "y" -o "$choice" = "Y" ]
do
read -p "Hostname tippen: " host
read -p "IP klopfen: " ip
read -p "NetClass eingeben: (a,b,c): " class
echo -n "Uno momento..."
# The real program
# First mapping
if [ -e /var/named/$domain ];
then
echo "$host IN A $ip" >> /var/named/$domain
else
cat << EOF >> /etc/named.conf
zone "$domain" in {
type master;
file "$domain";
};
EOF
cat /var/named/sample/domain > /var/named/$domain
echo "$host IN A $ip" >> /var/named/$domain
fi
echo -n "."
# Lookup the host and net id, to choose the right arpa file
# For A it is net=172 host=16.1.1
if [ $class = a -o $class = A ];
then
# Get the arpa file
net=`echo $ip | cut -d. -f1`
# Get the hostid.
ho=`echo $ip |cut -d. -f2-4`
# The reverse Net
rnet=$net
# For B it is net=172.16 host=1.1
elif [ $class = b -o $class = B ];
then
# Get the arpa file
net=`echo $ip | cut -d. -f1-2`
# Get the hostid.
ho=`echo $ip | cut -d. -f3-4`
# The reverse Net
rnet1=`echo $ip | cut -d. -f1`
rnet2=`echo $ip | cut -d. -f2`
rnet="$rnet2.$rnet1"
# For C it is net=172.16.1 host=1
elif [ $class = c -o $class = C ];
then
# Get the arpa file
net=`echo $ip | cut -d. -f1-3`
# Get the hostid.
ho=`echo $ip | cut -d. -f4`
# The reverse Net
rnet1=`echo $ip | cut -d. -f1`
rnet2=`echo $ip | cut -d. -f2`
rnet3=`echo $ip | cut -d. -f3`
rnet="$rnet3.$rnet2.$rnet1"
fi
echo -n "."
if [ -e /var/named/reverse/$net ];
then
echo "$ho IN PTR $host.$domain." >> /var/named/reverse/$net
else
cat << EOF >> /etc/named.conf
zone "${rnet}.in-addr.arpa" in {
type master;
file "reverse/$net";
};
EOF
cat /var/named/sample/reverse > /var/named/reverse/$net
echo "$ho IN PTR $host.$domain." >> /var/named/reverse/$net
fi
echo -n "."
echo 'Finito :-)'
read -p "Noch einen Host in $domain eintragen ? " choice
done