11<?php
2- $ host ="IP-Adresse-ISP-CONFIG-Master-Server " ;
3- $ user ="MYSQL-USER " ;
2+ $ host ="IP_ADDRESS " ;
3+ $ user ="USERNAME " ;
44$ password ="PASSWORD " ;
55mysql_connect ($ host ,$ user ,$ password ) or die (mysql_error ());
66mysql_select_db ("dbispconfig " );
77$ result = "" ;
88$ result = mysql_query ("SELECT id,origin,ns,ttl,mbox,serial,refresh,retry,expire,minimum FROM dns_soa; " );
99function hostname2ipfunktion ($ tmp1 , $ timeout = 1 )
10- {
11- if ($ tmp1 == 0 )
12- {
13- $ query = `nslookup -timeout= $ timeout -retry=0 $ tmp1 `;
14- if (preg_match ('/\nAddress: (.*)\n/ ' , $ query , $ matches ))
15- return trim ($ matches [1 ]);
16- return $ tmp1 ;
17- }
18- }
10+ {
11+ if ($ tmp1 == 0 )
12+ {
13+ $ query = `nslookup -timeout= $ timeout -retry=0 $ tmp1 `;
14+ if (preg_match ('/\nAddress: (.*)\n/ ' , $ query , $ matches ))
15+ return trim ($ matches [1 ]);
16+ return $ tmp1 ;
17+ }
18+ }
19+
20+ $ serialsearch =date ("Ymd " );
21+ $ resultx12 = mysql_query ("SELECT origin,serial FROM dns_soa WHERE serial LIKE ' $ serialsearch%' ORDER BY origin ASC; " );
22+ while ($ rowx12 =mysql_fetch_array ($ resultx12 )) {
23+ $ zone =substr ($ rowx12 ["origin " ],0 ,-1 );
24+ $ filename_x1 ="/var/cache/bind/ " .$ zone ;
25+ if (file_exists ($ filename_x1 )) {
26+ $ serialvergleich [$ zone ]=exec ("grep \";Serial \" /var/cache/bind/ $ zone |cut -d \" \" -f1 | awk '{print $1}' " );
27+ }
28+ }
1929
2030while ($ row = mysql_fetch_array ($ result ))
21- {
22- ### Hier ALLES Aktivieren bei Primary Nameserver ########################################################################################
23- $ varx11 =substr ($ row ["origin " ],0 ,-1 );
24- unlink ("/var/cache/bind/ $ varx11 " );
25- $ arr1 [$ x11 ]="zone \"$ varx11 \" in { type master; file \"$ varx11 \"; }; \n" ;
26- $ x11 =$ x11 +1 ;
27- $ result2 = mysql_query ("select name,type,aux,data from dns_rr where zone= $ row [id] ORDER BY name ASC; " );
28- $ arr3 [0 ]="\$TTL " .$ row ['ttl ' ]."\n@ IN SOA " .$ row ['ns ' ]." " .$ row ['mbox ' ]." ( \n " .$ row ['serial ' ]." ;Serial \n" ." " .$ row ['refresh ' ]." ;Refresh \n" ." " .$ row ['retry ' ]." ;Retry \n" ." " .$ row ['expire ' ]." ;Expire \n" ." " .$ row ['minimum ' ]." ) ;Minimum \n\n" ;
31+ {
32+ ### Hier ALLES Aktivieren bei Primary Nameserver TEIL 1 #################################################################################
33+ $ varx11 =substr ($ row ["origin " ],0 ,-1 );
34+ $ filename ="/var/cache/bind/ " .$ varx11 ;
35+ if (file_exists ($ filename )) {
36+ unlink ("/var/cache/bind/ $ varx11 " );
37+ }
38+ $ arr1 [$ x11 ]="zone \"$ varx11 \" in { type master; file \"$ varx11 \"; }; \n" ;
39+ $ x11 =$ x11 +1 ;
40+ $ result2 = mysql_query ("select name,type,aux,data from dns_rr where zone= $ row [id] and active='Y' ORDER BY name ASC; " );
41+ $ arr3 [0 ]="\$TTL " .$ row ['ttl ' ]."\n@ IN SOA " .$ row ['ns ' ]." " .$ row ['mbox ' ]." ( \n " .$ row ['serial ' ]." ;Serial \n" ." " .$ row ['refresh ' ]." ;Refresh \n" ." " .$ row ['retry ' ]." ;Retry \n" ." " .$ row ['expire ' ]." ;Expire \n" ." " .$ row ['minimum ' ]." ) ;Minimum \n\n" ;
2942
30- $ xx1 =1 ;
31- while ($ row2 = mysql_fetch_row ($ result2 ))
32- {
33- $ arr2 [$ xx1 ]=$ row2 ['0 ' ]." IN " .$ row2 ['1 ' ]." " ;
43+ $ xx1 =1 ;
44+ while ($ row2 = mysql_fetch_row ($ result2 ))
45+ {
46+ $ arr2 [$ xx1 ]=$ row2 ['0 ' ]." IN " .$ row2 ['1 ' ]." " ;
3447
35- if ($ row2 ['2 ' ]>0 )
36- {
37- $ arr3 [$ xx1 ]=$ arr2 [$ xx1 ].$ row2 ['2 ' ]." " .$ row2 ['3 ' ]."\n" ;
38- }
39- else
40- {
41- $ arr3 [$ xx1 ]=$ arr2 [$ xx1 ].$ row2 ['3 ' ]."\n" ;
42- }
43- $ xx1 =$ xx1 +1 ;
44- }
45- $ f = fopen ("/var/cache/bind/ $ varx11 " , "a+ " );
46- foreach ($ arr3 as $ values ) fputs ($ f , $ values );
47- fclose ($ f );
48- $ arr2 =array ();
49- $ arr3 =array ();
50- ### ENDE Primärer Nameserver ###### #####################################################################################################
48+ if ($ row2 ['2 ' ]>0 )
49+ {
50+ $ arr3 [$ xx1 ]=$ arr2 [$ xx1 ].$ row2 ['2 ' ]." " .$ row2 ['3 ' ]."\n" ;
51+ }
52+ else
53+ {
54+ $ arr3 [$ xx1 ]=$ arr2 [$ xx1 ].$ row2 ['3 ' ]."\n" ;
55+ }
56+ $ xx1 =$ xx1 +1 ;
57+ }
58+ $ f = fopen ("/var/cache/bind/ $ varx11 " , "a+ " );
59+ foreach ($ arr3 as $ values ) fputs ($ f , $ values );
60+ fclose ($ f );
61+ $ arr2 =array ();
62+ $ arr3 =array ();
63+ ### ENDE Primärer Nameserver TEIL 2 #####################################################################################################
5164
5265### Hier ALLES Aktivieren bei Secondary Nameserver ######################################################################################
5366# $tmp1 = substr($row["ns"],0,-1);
5467# $tmp2 = substr($row["origin"],0,-1);
55- # $nsip = hostname2ipfunktion($tmp1);
56- # if ($nsip == $tmp1) # {
68+
69+ # if (!isset($dnscache[$tmp1])) $nsip = hostname2ipfunktion($tmp1) ;
70+ # else $nsip=$dnscache[$tmp1] ;
71+
72+ # if ($nsip == $tmp1)
73+ # {
5774# echo "$tmp2 $tmp1 Not a valid Nameserver";
5875# echo "\n";
5976# }
60- # else # {
77+ # else
78+ # {
79+ # $dnscache[$tmp1]=$nsip;
6180# $arr1[$x11]="zone \"".$tmp2."\" in { type slave; file \"".$tmp2."\"; masters {".$nsip."; }; };\n";
6281# $x11=$x11+1;
6382# }
6483### ENDE Secondary Nameserver ###########################################################################################################
65- }
84+ }
6685
6786unlink ("/etc/bind/named.conf.local " );
6887$ fx = fopen ("/etc/bind/named.conf.local " , "a+ " );
6988foreach ($ arr1 as $ values ) fputs ($ fx , $ values );
7089fclose ($ fx );
71- exec ("/etc/init.d/bind9 reload " );
90+ system ("rndc reconfig >/dev/null 2>&1 " );
91+
92+ ### ANFANG Primärer Namerserver TEIL 2 ##################################################################################################
93+ $ serialsearch =date ("Ymd " );
94+ $ resultx13 = mysql_query ("SELECT origin,serial FROM dns_soa WHERE serial LIKE ' $ serialsearch%' ORDER BY origin ASC; " );
95+ while ($ rowx13 =mysql_fetch_array ($ resultx13 )) {
96+ $ serial_ist =($ rowx13 ["serial " ]);
97+ $ zone =substr ($ rowx13 ["origin " ],0 ,-1 );
98+ # echo "zone: ".$zone." ist: ".$serial_ist." vergleich: ".$serialvergleich[$zone]."\n";
99+ if ($ serialvergleich [$ zone ] != $ serial_ist ) {
100+ $ reload =system ("rndc reload $ zone >/dev/null 2>&1 " );
101+ }
102+ }
103+ ### ENDE Primärer NamerserverTEIL 2 ######################################################################################################
72104?>
0 commit comments