#print_r($newip_array); $newipp = implode('_', $newip_array); #print_r($newipp); $oldip[$i] = htmlentities($oldip[$i]); $oldip_array = array($oldip[$i], $oldip[$i]); $oldipp = implode('_', $oldip_array); if (modify_ip_host($newipp, $hostDN[$i], $auDN, $fixadd[$i])) { #$mesg = "IP Adresse geaendert<br>"; adjust_hostip_tftpserverip($oldip[$i], $newip[$i]); if ($dhcp[$i]) { $dhcpchange = 1; } } else { #$mesg = "Fehler beim aendern der IP Adresse<br>"; # oldip die schon gelöscht wurde wieder einfügen new_ip_host($oldipp, $hostDN[$i], $auDN); } } else { echo "falsche IP Syntax"; } echo "<br>"; } elseif ($oldip[$i] != "" && $newip[$i] == "") { echo "IP <b>{$oldip[$i]}</b> löschen <br>"; $newip[$i] = htmlentities($newip[$i]); $oldip[$i] = htmlentities($oldip[$i]); if (delete_ip_host($hostDN[$i], $auDN)) { #$mesg = "IP Adresse geloescht<br>"; adjust_hostip_tftpserverip($oldip[$i], ""); if ($dhcp[$i]) { $dhcpchange = 1; }
$newip_array = array($ip, $ip); $newip = implode('_', $newip_array); # print_r($newip); echo "<br><br>"; $oldip_array = array($oldip, $oldip); $oldipp = implode('_', $oldip_array); if (modify_ip_host($newip, $hostDN, $auDN, "")) { $mesg .= "IP erfolgreich geaendert<br><br>"; if ($olddhcp || $dhcp) { $dhcpchange = 1; } // # falls Host ein RBS_Server ist // adjust_hostip_tftpserverip($oldip,$ip); } else { $mesg .= "Fehler beim aendern der IP<br><br>"; # oldip die schon gelöscht wurde wieder einfügen new_ip_host($oldipp, $hostDN, $auDN); } } else { $mesg .= "Falsche IP Syntax<br><br>"; } } if ($oldip != "" && $ip == "") { # IP loeschen if (delete_ip_host($hostDN, $auDN)) { $mesg .= "IP erfolgreich geloescht<br><br>"; if ($olddhcp || $dhcp) { $dhcpchange = 1; } if ($fixedaddress != "") { $fixedaddress = ""; }
/** * modify_ip_host($ip,$hostDN,$auDN) * Aendert die IP Adresse eines Hosts, falls neue IP verfuegbar, und passt die FreeIPBlocks der AU an. * * @param string ip IP Adresse, die neu zugewiesen werden soll * @param string hostDN Distinguished Name des LDAP Host-Objektes * @param string auDN Distinguished Name des LDAP AU-Objektes * * @return boolean 1 bei Erfolg bzw. 0 bei Misserfolg * * @author Tarik Gasmi */ function modify_ip_host($ip, $hostDN, $auDN, $fixadd) { global $ds, $suffix, $ldapError; if (delete_ip_host($hostDN, $auDN)) { if (new_ip_host($ip, $hostDN, $auDN)) { if ($fixadd != "") { $fa_entry['dhcpoptfixed-address'] = $fixadd; ldap_mod_add($ds, $hostDN, $fa_entry); } echo "IP Adresse erfolgeich geaendert!<br>"; return 1; } else { echo "Fehler beim eintragen der IP Adresse!<br>"; return 0; } } else { echo "Fehler beim austragen der IP Adresse!<br>"; return 0; } }
function add_host($hostDN, $hostname, $hostdesc, $mac, $ip, $atts, $dhcp) { global $ds, $suffix, $auDN, $assocdom, $ldapError; $syntax = new Syntaxcheck(); $mactest = 0; $entryhost['objectclass'][0] = "Host"; $entryhost['objectclass'][1] = "dhcpHost"; $entryhost['objectclass'][2] = "dhcpOptions"; $entryhost['objectclass'][3] = "top"; $entryhost["hostname"] = $hostname; $entryhost["domainname"] = $assocdom; if ($hostdesc != "") { $entryhost["description"] = $hostdesc; } if ($mac != "") { if ($syntax->check_mac_syntax($mac)) { $entryhost["hwaddress"] = $mac; if ($dhcp != "none" && $dhcp != "") { $entryhost["dhcphlpcont"] = $dhcp; } } else { echo "SyntaxCheck MAC Adresse <b>{$mac}</b>:<br>-> " . $syntax->ERROR; } } else { echo "Keine MAC Adresse angelegt. Kein DHCP Eintrag.<br>"; } foreach (array_keys($atts) as $key) { if ($atts[$key] != "") { $entryhost[$key] = $atts[$key]; } } #print_r($entryhost); echo "<br>"; if ($result = ldap_add($ds, $hostDN, $entryhost)) { if ($ip != "") { if ($syntax->check_ip_syntax($ip)) { $newip_array = array($ip, $ip); $newip = implode('_', $newip_array); print_r($newip); echo "<br><br>"; if (new_ip_host($newip, $hostDN, $auDN)) { echo "IP erfolgreich eingetragen<br><br>"; if ($mac != "" && $mactest && $dhcp != "none" && $dhcp != "") { $entryfa["dhcpoptfixed-address"] = "ip"; if (ldap_mod_add($ds, $hostDN, $entryfa)) { echo "DHCP Fixed-Address erfolgreich auf IP gesetzt<br><br>"; } else { echo "Fehler beim Setzen von DHCP Fixed-Address<br><br>"; } } } else { echo "Fehler beim eintragen der IP<br><br>"; } } else { echo "Falsche IP Syntax! IP nicht eingetragen<br><br>"; } } #echo "Rechner erfolgreich eingetragen<br>"; if ($mac != "" && $mactest && $dhcp != "none" && $dhcp != "") { update_dhcpmtime($auDN); } return 1; } else { #echo "Fehler beim eintragen des neuen Rechners!<br>"; return 0; } }