# 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öscht<br>"; #}else { # $mesg .= "Fehler beim löschen von <b>$oldauzone[$i]</b> in $audn[$i]<br>"; #} $mesg .= "<b>{$oldauzone[$i]}</b> kann nicht gelöscht werden<br>\n\t\t\t\t\tAdministrative Einheiten (AUs) mü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>"; } }