ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/FreeBSDAdmin/DNS/reverse.sh
Revision: 845
Committed: 2006-07-25T23:47:46-07:00 (18 years, 10 months ago) by douglas
Content type: text/x-sh
File size: 1581 byte(s)
Log Message:
Woo!

File Contents

# Content
1 #!/usr/local/bin/bash
2 # Douglas Thrift
3 #
4 # Reverse
5 #
6 # $Id$
7
8 function usage()
9 {
10 echo "Usage: `basename $0` [previous] hostname address"
11 exit 1
12 }
13
14 case $# in
15 (2)
16 if grep -Eq '^[-.a-z0-9]+$' <<<$1; then hostname=$1; else usage; fi
17 if grep -Eq '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' <<<$2; then address=$2; else usage; fi
18 ;;
19 (3)
20 if grep -Eq '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' <<<$1; then previous=$1; else usage; fi
21 if grep -Eq '^[-.a-z0-9]+$' <<<$2; then hostname=$2; else usage; fi
22 if grep -Eq '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' <<<$3; then address=$3; else usage; fi
23 ;;
24 (*)
25 usage
26 ;;
27 esac
28
29 function reverse()
30 {
31 echo "`sed -Ee 's/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/\4.\3.\2.\1/' <<<$1`.in-addr.arpa"
32 }
33
34 domainname=`reverse $address`
35 zonefile=master/$domainname
36
37 if [[ -z $previous ]]; then
38 cat > $zonefile <<EOF
39 \$ORIGIN .
40 \$TTL 3600 ; 1 hour
41 $domainname IN SOA ns.douglasthrift.net. admin.douglasthrift.net. (
42 `date +%Y%m%d`01 ; serial
43 7200 ; refresh (2 hours)
44 3600 ; retry (1 hour)
45 604800 ; expire (1 week)
46 3600 ; minimum (1 hour)
47 )
48 NS ns.douglasthrift.net.
49 PTR $hostname.
50 EOF
51 cat >> named.conf <<EOF
52
53 # $hostname
54 zone "$domainname" {
55 type master;
56 file "$zonefile";
57 };
58 EOF
59 else
60 olddomainname=`reverse $previous`
61 oldzonefile=master/$olddomainname
62 sed -e "s/$olddomainname/$domainname/" -e "s/[0-9]{10} ; serial$/`date +%Y%m%d`01 ; serial/" $oldzonefile > $zonefile
63 sed -i '' -e "s/$olddomainname/$domainname/" named.conf
64 rm -f $oldzonefile
65 fi

Properties

Name Value
svn:executable *
svn:keywords Id