From 86f1304d5c5cf6783a815a983399d757bfb5913e Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Tue, 15 Sep 2009 11:11:58 -0400
Subject: [PATCH] Added a DNS export script that exports the ispconfig database into bind file format.

---
 helper_scripts/dns_export_to_bind.php |  103 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 103 insertions(+), 0 deletions(-)

diff --git a/helper_scripts/dns_export_to_bind.php b/helper_scripts/dns_export_to_bind.php
new file mode 100644
index 0000000..beca21c
--- /dev/null
+++ b/helper_scripts/dns_export_to_bind.php
@@ -0,0 +1,103 @@
+<?php
+$host="IP";
+$user="root";
+$password="PASSWORD";
+mysql_connect($host,$user,$password) or die(mysql_error());
+mysql_select_db("dbispconfig");
+$result = "";
+$result = mysql_query("SELECT id,origin,ns,ttl,mbox,serial,refresh,retry,expire,minimum FROM dns_soa;");
+exec ("rm -f /etc/bind/named.conf.local");
+
+$fx = fopen("/etc/bind/named.conf.local", "a+");
+
+function hostname2ipfunktion($tmp1, $timeout = -1) {
+  if ($tmp1 == 0) {
+  $query = `nslookup -timeout=$timeout -retry=0 $tmp1`;
+  if(preg_match('/\nAddress: (.*)\n/', $query, $matches))
+     return trim($matches[1]);
+  return $tmp1;
+}
+}
+
+while($row = mysql_fetch_array($result))
+{
+### Hier ALLES Aktivieren bei Primary Nameserver ########################################################################################
+#$tmp1 = substr($row["origin"],0,-1);
+#fwrite($fx,"zone \"");
+#fwrite($fx,substr($row["origin"],0,-1));
+#fwrite($fx,"\" in { type master; file \"");
+#fwrite($fx,substr($row["origin"],0,-1));
+#fwrite($fx,"\"; };\n");
+#$result2 = mysql_query("select name,type,aux,data from dns_rr where zone=$row[id];");
+#exec("rm -f /var/cache/bind/$tmp1");
+#$f = fopen("/var/cache/bind/$tmp1", "a+");
+#fwrite($f,"\$TTL ");
+#fwrite($f,$row['ttl']);
+#fwrite($f,"\n");
+#fwrite($f,"@ IN SOA ");
+#fwrite($f,$row['ns']);
+#fwrite($f," ");
+#fwrite($f,$row['mbox']);
+#fwrite($f," (");
+#fwrite($f,"\n");
+#fwrite($f,"            ");
+#fwrite($f,$row['serial']);
+#fwrite($f," ;Serial");
+#fwrite($f,"\n");
+#fwrite($f,"            ");
+#fwrite($f,$row['refresh']);
+#fwrite($f," ;Refresh");
+#fwrite($f,"\n");
+#fwrite($f,"            ");
+#fwrite($f,$row['retry']);
+#fwrite($f," ;Retry");
+#fwrite($f,"\n");
+#fwrite($f,"            ");
+#fwrite($f,$row['expire']);
+#fwrite($f," ;Expire");
+#fwrite($f,"\n");
+#fwrite($f,"            ");
+#fwrite($f,$row['minimum']);
+#fwrite($f," )");
+#fwrite($f," ;Minimum");
+#fwrite($f,"\n");
+#fwrite($f,"\n");
+#while($row2 = mysql_fetch_row($result2))
+#{
+#fwrite($f,$row2['0']);
+#fwrite($f," IN ");
+#fwrite($f,$row2['1']);
+#fwrite($f," ");
+#if ($row2['2']>0)
+#{
+#fwrite($f,$row2['2']);
+#fwrite($f," ");
+#}
+#fwrite($f,$row2['3']);
+#fwrite($f,"\n");
+#}
+#fclose($f);
+#### ENDE Prim�rer Namerserver ###########################################################################################################
+
+### Hier ALLES Aktivieren bei Secondary Nameserver ######################################################################################
+$tmp1 = substr($row["ns"],0,-1);
+$tmp2 = substr($row["origin"],0,-1);
+$nsip = hostname2ipfunktion($tmp1);
+if ($nsip == $tmp1) {
+echo "$tmp2 $tmp1 Not a valid Nameserver";
+echo "\n";
+}
+else {
+fwrite($fx,"zone \"");
+fwrite($fx,substr($row["origin"],0,-1));
+fwrite($fx,"\" in { type slave; file \"");
+fwrite($fx,substr($row["origin"],0,-1));
+fwrite($fx,"\"; masters {");
+fwrite($fx,"$nsip; }; };");
+fwrite($fx,"\n");
+}
+### ENDE Secondary Nameserver ###########################################################################################################
+}
+fclose($fx);
+exec("/etc/init.d/bind9 reload");
+?>
\ No newline at end of file

--
Gitblit v1.9.1