示例#1
0
 # Formulareingaben anpassen (Leerzeichen raus da Teil des DN)
 #$exphn = explode(" ",$hostname);
 #foreach ($exphn as $word){$expuc[] = ucfirst($word);}
 #$hostname = implode(" ",$expuc);
 #$hostname = preg_replace ( '/\s+([0-9a-zA-Z])/', '$1', $hostname);
 $hostname = preg_replace('/^([^\\.]+)\\.(.*)/', '$1', $hostname);
 $hostname = preg_replace('/[^0-9a-zA-Z_-]/', '', $hostname);
 $hostname = htmlentities($hostname);
 if (check_host_fqdn($hostname)) {
     # Host Objekt anlegen
     $hostDN = "HostName=" . $hostname . ",cn=computers," . $auDN;
     # print_r($hostDN); echo "<br>";
     if ($ip) {
         if ($syntax->check_ip_syntax($ip)) {
             # sonst vorher absturz durch unendlichen zone_check ...
             if (!check_iprange_zone($ip, $ip, $assocdom, $au_ou)) {
                 #	$ip = "";
                 echo "IP Adresse <b>{$ip}</b> nicht in DNS eingetragen.<br>";
                 #			Client wird ohne IP Adresse angelegt<br>";
             }
             # Wenn DHCP Subnet zu IP nicht existiert dann kein Eintrag DHCP
             if ($network = test_ip_dhcpsubnet($ip)) {
                 print "<b>Subnetz {$network}/24</b> nicht im DHCP eingetragen<br>Client wird nicht in DHCP eingetragen<br><br>";
                 #$ip = "";
                 $dhcp = "";
             }
         } else {
             echo "IP Adresse {$ip} nicht korrekt!<br>Client wird ohne IP Adresse eingetragen.<br><br>";
             $ip = "";
             if ($dhcp) {
                 echo "Client wird nicht in DHCP eingetragen.<br><br>";
     #if ($result) {
     #	$mesg .= "<b>$oldauzone[$i]</b> erfolgreich in $audn[$i] gel&ouml;scht<br>";
     #}else {
     #	$mesg .= "Fehler beim l&ouml;schen von <b>$oldauzone[$i]</b> in $audn[$i]<br>";
     #}
     $mesg .= "<b>{$oldauzone[$i]}</b> kann nicht gel&ouml;scht werden<br>\n\t\t\t\t\tAdministrative Einheiten (AUs) m&uuml;ssen einer DNS Zone zugeordnet sein!<br>";
 } else {
     # Zone ändern
     if ($syntax->is_hostname($auzone[$i])) {
         # if AU IP Ranges ... DNS Lookup Test
         $mipbs = get_maxipblocks_au($audn[$i]);
         #echo "MIPBS: <br>";print_r($mipbs);
         if ($mipbs[0] != "") {
             foreach ($mipbs as $mipb) {
                 $exp = explode("_", $mipb);
                 if (!check_iprange_zone($exp[0], $exp[1], $auzone[$i], $expou[0])) {
                     $change_zone = 0;
                 }
             }
         }
         if (in_array($auzone[$i], $oldauzone)) {
             # Zone existiert bereits
             $mesg .= "<br>Zone {$auzone[$i]} existiert bereits.<br>";
             # eigene Host auf Eindeutigkeit testen in neuer Zone ...
             $hosts = get_hosts($audn[$i], array("dn", "hostname"), "");
             if ($matches = check_hostarray_fqdn2($hosts, $auzone[$i])) {
                 $change_zone = 0;
                 $mesg .= "Folgende Hostnamen sind in der neuen Zone bereits vergeben:<br>";
                 #$j=1;
                 foreach ($matches as $match) {
                     $mesg .= "<b>{$match}</b><br>";
             $newrange1[$i] = htmlentities($newrange1[$i]);
             $newrange2[$i] = htmlentities($newrange2[$i]);
             $newrange_array = array($newrange1[$i], $newrange2[$i]);
             $newrange = implode('_', $newrange_array);
             #print_r($newrange);
             $oldrange1[$i] = htmlentities($oldrange1[$i]);
             $oldrange2[$i] = htmlentities($oldrange2[$i]);
             $oldip_array = array($oldrange1[$i], $oldrange2[$i]);
             $oldrange = implode('_', $oldip_array);
             #print_r($oldrange);
             # DNS Lookup Test für neue IPs
             $diffrange = split_iprange($oldrange, $newrange);
             # expand momentan nur für das erste element aus Diffrange-Array
             #print_r($diffrange);
             $drexp = explode("_", $diffrange[0]);
             if (check_iprange_zone($drexp[0], $drexp[1], $childzone, $childau)) {
                 if (expand_ip_delegation($oldrange, $newrange, $childauDN, $auDN)) {
                     $mesg = "<br>IP Range erweitert<br>";
                 } else {
                     $mesg = "<br>Fehler beim erweitern der IP Range<br>";
                 }
             } else {
                 echo "IP Bereich <b>{$drexp['0']} - {$drexp['1']}</b> konnte nicht an <b>{$childau}</b> delegiert werden<br>";
             }
         } else {
             echo "falsche IP Syntax<br>";
         }
     } else {
         $mesg = "<br>Verschieben (Shiften) der Delegierung nicht moeglich!<br>\n\t\t\tNur Vergroessern und Verkleinern moeglich!<br>";
     }
 }