[ Pobierz całość w formacie PDF ]
.Poniższe siedem wydruków zawiera elementy głównegoskryptu.Wydruki 8.do 13.są plikami szablonów używanych do generowania plików wynikowych.Przykład tenkorzysta z klasy FastTemplate opisanej w rozdziale 12. Oddzielanie kodu HTML od PHP.Wydruk 13.8.Główny szablon dla pliku strefy DNS (dns_primary.tpl)$TTL 86400{DOMAIN}.IN SOA {SOA_SERVER}.{ADMINISTRATOR}.({SERIAL} ; nr seryjny10800 ; odswieżanie3600 ; ponowna próba604800 ; wygaśnięcie86400 ; domyślny TTL){NAMESERVERS}{DOMAIN}.IN A {IPADDRESS}{CNAME_RECORDS}{DOMAIN}.IN MX 10 {MAIL_SERVER}.{DOMAIN}.LOC 43 49 57.551 N 111 46 38.071 W 1480.7mWydruk 13.9.Szablon nazw hostów DNS (zastępuje CNAME_RECORDS z wydruku 13.8.)(dns_secondary.tpl){CNAME} IN CNAME {DOMAIN}.{CRLF}Wydruk 13.10.Szablon serwerów nazw DNS (zastępuje NAMESERVERS z wydruku 13.8.)(dns_nservers.tpl){DOMAIN}.IN NS {NAMESERVER}.{CRLF}Wydruk 13.11.Główny szablon dla pliku named.conf (named_primary.tpl)PHP  Kompendium wiedzy165 acl trustedslaves { ns1.nameserver.com;ns2.nameserver.com; };options {directory "/var/named";recursion yes;fetch-glue no;allow-query { any; };};zone "." { type hint; file "cache.db"; };{ZONES}Wydruk 13.12.Pomocniczy szablon dla pliku named.conf (zastępuje ZONES z wydruku 13.11.)(named_secondary.tpl)zone "{DOMAIN}" { type master; file "{DOMAIN_FILE}"; notify yes;allow-transfer { trustedslaves; }; };Wydruk 13.13.Szablon dla pliku podrzędnych DNS (named_slaves.tpl)zone "{DOMAIN}" { type slave; file "{DOMAIN_FILE}"; masters {master.com; }; };Szablony te tworzą szkielet niezbędny do utworzenia wszystkich plików konfiguracyjnych dla serweranazw BIND.Pierwsze trzy generują osobne pliki stref, które mogą posiadać różną liczbę serwerów nazw idefinicji nazw komputerów.Pozostałe są używane do utworzenia pliku named.conf oraz pliku podrzędnego,wykorzystywanego w podrzędnym serwerze nazw.Skrypt pokazany na wydruku 13.14 odczytuje z bazy danych dane DNS i generuje wszystkie plikikonfiguracyjne.Wydruk 13.14, Skrypt DNSdefine( array( named_main => "named_primary.tpl",named_zones => "named_secondary.tpl",named_slaves => "named_slaves.tpl",dns_main => "dns_primary.tpl",dns_cnames => "dns_secondary.tpl",dns_nservers => "dns_nservers.tpl" ));// pobierz listę serwerów nazw i zapamiętaj do pózniejszego wykorzystania$aNSDB = new genapps_db();$aSQL = "select * from NameServers";$aNSDB->query( $aSQL ); // pobierz wszystkie dane strefy$aDB = new genapps_db();$aSQL = "select A.name, A.cname_list, A.incl_zone_file, B.name as soa_server,C.name as ";$aSQL.= "mail_server, D.value as ip_address from Domains A, SOAServers B, ";$aSQL.= "MailServers C, IPAddressess D where ( A.soa_server_id = B.soa_server_id)";$aSQL.= "and ( A.mail_server_id = C.mail_server_id ) and ";$aSQL.= "( A.ip_address_id = D.ip_address_id )";$aDB->query( $aSQL );while ( $aDB->next_record() ){$aDomainName = strtolower( $aDB->f( "name" ) );$aCNames = $aDB->f( "cname_list" );$aSoaServer = $aDB->f( "soa_server" ) ;$aMailServer = $aDB->f( "mail_server" );$aIPAddress = $aDB->f( "ip_address" );$aInclZoneFile = $aDB->f( "incl_zone_file" );$tpl->assign( array( DOMAIN => $aDomainName,ADMINISTRATOR => "admin.".$aSoaServer,SERIAL => date( "Ymd" )."00",MAIL_SERVER => $aMailServer,SOA_SERVER => $aSoaServer,IPADDRESS => $aIPAddress,CRLF => "\n" ) );/* nazwy hostów (rekordy CNAME) są przechowywane w liścierozdzielanej przecinkami w bazie danyche.Dzielenie listyi tworzenie linii dla każdego elementu */$tpl->clear( CNAME_RECORDS );Rozdział 13  Fajny PHP166 $aCNameList = explode( ",", $aCNames );foreach( $aCNameList as $aCName ){$aCName = trim( $aCName );$tpl->assign( array( CNAME => $aCName ) );$tpl->parse( CNAME_RECORDS, ".dns_cnames");}// dodanie linii serwerów nazw do pliku strefy$tpl->clear( NAMESERVERS );$aNSDB->seek( 0 ) ;while ( $aNSDB->next_record() ){$tpl->assign( array( NAMESERVER => $aNSDB->f( "name" )) );$tpl->parse( NAMESERVERS, ".dns_nservers" );}$aDomainFile = $aDomainName [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • odbijak.htw.pl