summaryrefslogtreecommitdiff
path: root/scripts/nameserver_autogen/bind_tld_zonefile_all.sh
diff options
context:
space:
mode:
authorepoch <epoch@hacking.allowed.ano>2014-07-17 04:20:09 +0000
committerepoch <epoch@hacking.allowed.ano>2014-07-17 04:20:09 +0000
commit7049e8e687a084f4fa09af2321f588ab1fc51054 (patch)
tree682c0d8eb28fab093097a56c9c28fc2b3411bf74 /scripts/nameserver_autogen/bind_tld_zonefile_all.sh
parenta9dfcc40a71ffeb0ebc93342870459d334f556e0 (diff)
downloadresdb-7049e8e687a084f4fa09af2321f588ab1fc51054.tar.gz
resdb-7049e8e687a084f4fa09af2321f588ab1fc51054.zip
forked bind_told_zonefile.sh to do all TLDs in resdb instead of just ano.
Diffstat (limited to 'scripts/nameserver_autogen/bind_tld_zonefile_all.sh')
-rwxr-xr-xscripts/nameserver_autogen/bind_tld_zonefile_all.sh71
1 files changed, 71 insertions, 0 deletions
diff --git a/scripts/nameserver_autogen/bind_tld_zonefile_all.sh b/scripts/nameserver_autogen/bind_tld_zonefile_all.sh
new file mode 100755
index 0000000..580aad4
--- /dev/null
+++ b/scripts/nameserver_autogen/bind_tld_zonefile_all.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+#made for bash. not sure if all /bin/sh work.
+#be sure to edit these variables first.
+
+#zonefiles are named after the TLD they're for.
+#make sure not to clobber any files. ;)
+
+#ZONEFILE_DIR=/etc/namedb
+#RDNS_ZONEFILE=/etc/namedb/1.in-addr.arpa
+#RESDB_PATH=/var/db/resdb
+
+if [ ! "$ZONEFILE_DIR" ];then
+ echo "You forgot to set some variables. read the source plzkthx."
+ exit 0;
+fi
+
+
+echo -n "generating ipv4 reverse lookup zonefile for 1/8..."
+
+echo "; this zonefile genreated on: `date`" > "$RDNS_ZONEFILE"
+echo '$TTL 3600' >> "$RDNS_ZONEFILE"
+echo '@ IN SOA localhost. root.localhost. ('`date +" %Y%m%d%H"`' 60 300 3600000 3600 )' >> "$RDNS_ZONEFILE"
+echo '@ IN NS localhost.' >> "$RDNS_ZONEFILE"
+echo 'localhost. IN A 127.0.0.1' >> "$RDNS_ZONEFILE"
+
+for i in `ls ${RESDB_PATH}/db/ip/01/*/*/ns/*`;do
+ f=$(basename $i)
+ a=$(basename $(dirname $i))
+ b=$(basename $(dirname $(dirname $i)))
+ c=$(basename $(dirname $(dirname $(dirname $i))))
+ printf "%d.%d IN NS %s\n" $[0x${b}] $[0x${c}] ${f}.
+done >> "$RDNS_ZONEFILE"
+echo done.
+
+for GOHERE in ${RESDB_PATH}/db/dom/*;do
+
+ cd ${GOHERE}
+ TLD=$(basename ${GOHERE})
+ ANO_ZONEFILE=${ZONEFILE_DIR}/${TLD}
+ echo -n generating .${TLD} TLD zonefile...
+ echo "; this zonefile genreated on: `date`" > "$ANO_ZONEFILE"
+ echo '$TTL 3600' >> "$ANO_ZONEFILE"
+ echo '@ IN SOA localhost. root.localhost. ('`date +" %Y%m%d%H"`' 60 300 3600000 3600 )' >> "$ANO_ZONEFILE"
+ echo '@ IN NS localhost.' >> "$ANO_ZONEFILE"
+ echo 'localhost. IN A 127.0.0.1' >> "$ANO_ZONEFILE"
+
+ for name in *;do
+ if [ -e "${name}/ns/" ];then
+ for server in "$name"/ns/*;do
+ if grep '\.ano$' <<< "$name" > /dev/null;then
+ true
+ fi
+ if grep '\.ano$' <<< "$server" > /dev/null;then
+ true
+ fi
+ fqserver=`cut -d/ -f3- <<< $server`
+ echo -e "${name}\tIN NS\t${fqserver}."
+ for ip in `cat ${server}`;do
+ if grep ':' <<< "$ip" > /dev/null;then
+ echo -e "${fqserver}.\tIN AAAA\t$ip"
+ else
+ echo -e "${fqserver}.\tIN A\t$ip"
+ fi
+ done
+ done
+ fi
+ done >> "$ANO_ZONEFILE"
+ echo done with ${TLD}
+done
+
+echo might want to send a sighup to your named now.