\n"; // Menu select pour les vlan $nbr_vlan = dhcp_vlan_test(); if ($nbr_vlan > 0) { $i = 1; $ret .= "
\n"; } // formulaire $ret .= "\n"; exec("sudo /usr/share/se3/scripts/makedhcpdconf state", $state); if ($state[0] == "1") { $ret .= ""; } else { $ret .= ""; } return $ret; } /** * Mise a jour de la conf du dhcp dans la base SQL * @Parametres * @Return Erreur SQL */ function dhcp_update_config() { // insert range in option service table require_once ("ihm.inc.php"); $error = ""; if ($_POST['vlan'] > 0) { //verif si le champ existe dans la table sinon on le cree $dhcp_min = "dhcp_ip_min_" . $_POST['vlan']; dhcp_vlan_champ($dhcp_min); $dhcp_begin = "dhcp_begin_range_" . $_POST['vlan']; dhcp_vlan_champ($dhcp_begin); $dhcp_end = "dhcp_end_range_" . $_POST['vlan']; dhcp_vlan_champ($dhcp_end); $dhcp_gateway_vlan = "dhcp_gateway_" . $_POST['vlan']; dhcp_vlan_champ($dhcp_gateway_vlan); $dhcp_reseau = "dhcp_reseau_" . $_POST['vlan']; dhcp_vlan_champ($dhcp_reseau); $dhcp_masque = "dhcp_masque_" . $_POST['vlan']; dhcp_vlan_champ($dhcp_masque); $dhcp_extra_option = "dhcp_extra_option_" . $_POST['vlan']; dhcp_vlan_champ($dhcp_extra_option); } else { $dhcp_min = "dhcp_ip_min"; $dhcp_begin = "dhcp_begin_range"; $dhcp_end = "dhcp_end_range"; $dhcp_gateway_vlan = "dhcp_gateway"; $dhcp_extra_option = "dhcp_extra_option"; } if ((set_ip_in_lan($_POST["$dhcp_min"])) || ($_POST["$dhcp_min"] == "")) { $update_query = "UPDATE params SET value='" . $_POST["$dhcp_min"] . "' WHERE name='$dhcp_min'"; mysql_query($update_query); } else { $error["$dhcp_min"] = gettext("Cette addresse n'est pas valide : " . $_POST["$dhcp_min"]); } if ((set_ip_in_lan($_POST["$dhcp_begin"])) || ($_POST["$dhcp_begin"] == "")) { $update_query = "UPDATE params SET value='" . $_POST["$dhcp_begin"] . "' WHERE name='$dhcp_begin'"; mysql_query($update_query); } else { $error["$dhcp_begin"] = gettext("Cette addresse n'est pas valide : " . $_POST["$dhcp_begin"]); } if ((set_ip_in_lan($_POST["$dhcp_end"]) || ($_POST["$dhcp_end"]) == "")) { $update_query = "UPDATE params SET value='" . $_POST["$dhcp_end"] . "' WHERE name='$dhcp_end'"; mysql_query($update_query); } else { $error["$dhcp_end"] = gettext("Cette adresse n'est pas valide : " . $_POST["$dhcp_end"]); } if ((set_ip_in_lan($_POST["$dhcp_gateway_vlan"])) || ($_POST["$dhcp_gateway_vlan"] == "")) { $update_query = "UPDATE params SET value='" . $_POST["$dhcp_gateway_vlan"] . "' WHERE name='$dhcp_gateway_vlan'"; mysql_query($update_query); } else { $error["$dhcp_gateway_vlan"] = gettext("Cette adresse n'est pas valide : " . $_POST["$dhcp_gateway_vlan"]); } if ((set_ip_in_lan($_POST["$dhcp_reseau"])) || ($_POST["$dhcp_reseau"] == "")) { $update_query = "UPDATE params SET value='" . $_POST["$dhcp_reseau"] . "' WHERE name='$dhcp_reseau'"; mysql_query($update_query); } else { $error["$dhcp_reseau"] = gettext("Cette addresse n'est pas valide : " . $_POST["$dhcp_reseau"]); } if ((set_ip_in_lan($_POST["$dhcp_masque"])) || ($_POST["$dhcp_masque"] == "")) { $update_query = "UPDATE params SET value='" . $_POST["$dhcp_masque"] . "' WHERE name='$dhcp_masque'"; mysql_query($update_query); } else { $error["$dhcp_masque"] = gettext("Cette addresse n'est pas valide : " . $_POST["$dhcp_masque"]); } // if (!($_POST["$dhcp_extra_option"]=="")) { $update_query = "UPDATE params SET value='" . $_POST["$dhcp_extra_option"] . "' WHERE name='$dhcp_extra_option'"; mysql_query($update_query); // } // Si on est dans la conf des vlan cette partie n'est pas modifiable if ($_POST['vlan'] < 1) { if (set_ip_in_lan($_POST['dhcp_dns_server_prim'])) { $update_query = "UPDATE params SET value='" . $_POST['dhcp_dns_server_prim'] . "' WHERE name='dhcp_dns_server_prim'"; mysql_query($update_query); } else { $error["dhcp_dns_server_prim"] = gettext("Cette adresse n'est pas valide :" . $_POST['dhcp_dns_server_prim']); } if ((set_ip_in_lan($_POST['dhcp_dns_server_sec'])) || ($_POST['dhcp_dns_server_sec'] == "")) { $update_query = "UPDATE params SET value='" . $_POST['dhcp_dns_server_sec'] . "' WHERE name='dhcp_dns_server_sec'"; mysql_query($update_query); } else { $error["dhcp_dns_server_sec"] = gettext("Cette adresse n'est pas valide : " . $_POST['dhcp_dns_server_sec']); } if (preg_match('/,/', $_POST['dhcp_wins'])) { list($wins_ip_1, $wins_ip_2) = preg_split('/,/', $_POST['dhcp_wins']); if ((set_ip_in_lan($wins_ip_1)) && (set_ip_in_lan($wins_ip_2))) { $update_query = "UPDATE params SET value='" . $_POST['dhcp_wins'] . "' WHERE name='dhcp_wins'"; mysql_query($update_query); } else { $error["dhcp_wins"] = gettext("Une des adresses n'est pas valide : " . $_POST['dhcp_wins']); } } elseif ((set_ip_in_lan($_POST['dhcp_wins'])) || ($_POST['dhcp_wins'] == "")) { $update_query = "UPDATE params SET value='" . $_POST['dhcp_wins'] . "' WHERE name='dhcp_wins'"; mysql_query($update_query); } else { $error["dhcp_wins"] = gettext("Cette adresse n'est pas valide : " . $_POST['dhcp_wins']); } if ((set_ip_in_lan($_POST['dhcp_ntp'])) || ($_POST['dhcp_ntp'] == "")) { $update_query = "UPDATE params SET value='" . $_POST['dhcp_ntp'] . "' WHERE name='dhcp_ntp'"; mysql_query($update_query); } else { $error["dhcp_ntp"] = gettext("Cette adresse n'est pas valide : " . $_POST['dhcp_ntp']); } if (preg_match("/^[0-9]+$/", $_POST['dhcp_max_lease'])) { $update_query = "UPDATE params SET value='" . $_POST['dhcp_max_lease'] . "' WHERE name='dhcp_max_lease'"; mysql_query($update_query); } else { $error["dhcp_max_lease"] = gettext("Ce n'est pas un nombre valide : " . $_POST['dhcp_max_lease']); } if (preg_match("/^[0-9]+$/", $_POST['dhcp_default_lease'])) { $update_query = "UPDATE params SET value='" . $_POST['dhcp_default_lease'] . "' WHERE name='dhcp_default_lease'"; mysql_query($update_query); } else { $error["dhcp_default_lease"] = gettext("Ce n'est pas un nombre valide : " . $_POST['dhcp_default_lease']); } if (preg_match("/^eth[0-9]+$/", $_POST['dhcp_iface']) || preg_match("/^bond[0-9]+$/", $_POST['dhcp_iface'])) { $update_query = "UPDATE params SET value='" . $_POST['dhcp_iface'] . "' WHERE name='dhcp_iface'"; mysql_query($update_query); } else { $error["dhcp_iface"] = gettext("Ce n'est pas une interface valide : " . $_POST['dhcp_iface']); } if ($_POST['dhcp_on_boot']) { $value = "1"; } else { $value = "0"; } $update_query = "UPDATE params SET value='" . $value . "' WHERE name='dhcp_on_boot'"; mysql_query($update_query); $update_query = "UPDATE params SET value='" . $_POST['dhcp_domain_name'] . "' WHERE name='dhcp_domain_name'"; mysql_query($update_query); // TFTP SERVER if ((set_ip_in_lan($_POST['dhcp_tftp_server'])) || ($_POST['dhcp_tftp_server'] == "")) { $update_query = "UPDATE params SET value='" . $_POST['dhcp_tftp_server'] . "' WHERE name='dhcp_tftp_server'"; mysql_query($update_query); } else { $error["dhcp_tftp_server"] = gettext("Cette entrée n'est pas valide :") . $_POST['dhcp_tftp_server']; } // unatt if ((set_ip_in_lan($_POST['dhcp_unatt_server'])) || ($_POST['dhcp_unatt_server'] == "")) { $update_query = "UPDATE params SET value='" . $_POST['dhcp_unatt_server'] . "' WHERE name='dhcp_unatt_server'"; mysql_query($update_query); } else { $error["dhcp_tftp_server"] = gettext("Cette entrée n'est pas valide :") . $_POST['dhcp_unatt_server']; } $update_query = "UPDATE params SET value='" . $_POST['dhcp_unatt_login'] . "' WHERE name='dhcp_unatt_login'"; mysql_query($update_query); $update_query = "UPDATE params SET value='" . $_POST['dhcp_unatt_pass'] . "' WHERE name='dhcp_unatt_pass'"; mysql_query($update_query); $update_query = "UPDATE params SET value='" . $_POST['dhcp_unatt_filename'] . "' WHERE name='dhcp_unatt_filename'"; mysql_query($update_query); } return $error; } /** * Test si l'adresse IP appartient au reseau local * @Parametres $ip : Adresse IP a tester * @Return TRUE si oui - FLASE si non */ function set_ip_in_lan($ip) { if (preg_match("/^(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]{1}[0-9]|[1-9]).)" . "{1}((25[0-5]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]|[0-9]).)" . "{2}((25[0-5]|2[0-4][0-9]|[1]{1}[0-9]{2}|[1-9]{1}[0-9]|[0-9]){1}))$/", $ip)) { return TRUE; } else { return FALSE; } } /** * Parse le fichier dhcp.leases * @Parametres $file : fichier dhcp.laeses * @Return an associativ array : ["hostname"] / ("ip"] / [ "macaddr"] who are in dhcpd.lease and take ["parc"] entry if exist in ldap SORT by hostname */ function parse_dhcpd_lease($file) { require_once("includes/ldap.inc.php"); $lease = file($file); $compteur_clients = 0; $client["macaddr"][$compteur_clients] = ""; $client["hostname"][$compteur_clients] = ""; // $client["ip"][$compteur_clients]=$ip[0]; foreach ($lease as $compteur => $ligne) { if (preg_match("/^lease/", $ligne)) { // for each "lease" we take IP / Mac Addr / hostname preg_match("/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/", $ligne, $ip); // take IP $macaddr[0] = gettext("unresolved"); $clienthostname[0] = gettext("unresolved"); $etat = 0; while (!preg_match("/^}/", $lease[$compteur])) { if (preg_match("/binding state active/", $lease[$compteur])) $etat = 1; // lease state if (preg_match("/hardware ethernet/", $lease[$compteur])) { // take mac addr preg_match("/[a-fA-F0-9]{2}:[a-fA-F0-9]{2}:[a-fA-F0-9]{2}:[a-fA-F0-9]{2}:[a-fA-F0-9]{2}:[a-fA-F0-9]{2}/", $lease[$compteur], $macaddr); } if (preg_match("/client-hostname/", $lease[$compteur])) { // take name preg_match("/\"(.*)\"/", $lease[$compteur], $clienthostname); $clienthostname[0] = preg_replace("/\"/", "", $clienthostname[0]); } $compteur = $compteur + 1; } if ($etat && ((!in_array($macaddr[0], $client["macaddr"])) && ($macaddr[0] != gettext("unresolved") ) && (!registred($macaddr[0])))) { $client["macaddr"][$compteur_clients] = $macaddr[0]; $client["hostname"][$compteur_clients] = $clienthostname[0]; if ($client["hostname"][$compteur_clients] == gettext("unresolved")) { $list_computer = search_machines("(&(cn=*)(ipHostNumber=$ip[0]))", "computers"); if (count($list_computer) > 1) { $resolutiondunom = "doublon_ldap"; $client["hostname"][$compteur_clients] = $resolutiondunom; } elseif (count($list_computer) > 0) { $resolutiondunom = $list_computer[0]['cn']; $client["hostname"][$compteur_clients] = $resolutiondunom; } } $client["ip"][$compteur_clients] = $ip[0]; $client["parc"][$compteur_clients] = search_parcs($clienthostname[0]); $compteur_clients++; } } } if (is_array($client["ip"])) { array_multisort($client["hostname"], SORT_ASC, $client["ip"], SORT_ASC, $client["macaddr"], SORT_ASC, $client["parc"]); } else { $client = ""; } return $client; } function my_parse_dhcpd_lease($file) { $mode_debug = "n"; $mode_fich_debug = "n"; require_once("includes/ldap.inc.php"); $lease = file($file); $compteur_clients = 0; /* $client["macaddr"][$compteur_clients]=""; $client["hostname"][$compteur_clients]=""; // $client["ip"][$compteur_clients]=$ip[0]; */ $client["macaddr"] = array(); $client["ip"] = array(); $client["hostname"] = array(); $client["parc"] = array(); $tab_recherche_ldap_faite = array(); $liste_noms_en_lease = array(); $liste_noms_ldap = array(); $liste_autres_ip = array(); if ($mode_fich_debug == "y") { $fich = fopen('/tmp/parse_dhcpd_lease.txt', 'a+'); } foreach ($lease as $compteur => $ligne) { // for each "lease" we take IP / Mac Addr / hostname if (preg_match("/^lease/", $ligne)) { preg_match("/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/", $ligne, $ip); // take IP // Initialisation pour le cas ou les infos dans cette section du dhcpd.leases ne sont pas exmploitables $macaddr[0] = gettext("unresolved"); $clienthostname[0] = gettext("unresolved"); $etat = 0; // On lit le fichier jusqu'a l'accolade fermante suivante while (!preg_match("/^}/", $lease[$compteur])) { if (preg_match("/binding state active/", $lease[$compteur])) { $etat = 1; } // lease state if (preg_match("/hardware ethernet/", $lease[$compteur])) { // take mac addr preg_match("/[a-fA-F0-9]{2}:[a-fA-F0-9]{2}:[a-fA-F0-9]{2}:[a-fA-F0-9]{2}:[a-fA-F0-9]{2}:[a-fA-F0-9]{2}/", $lease[$compteur], $macaddr); } if (preg_match("/client-hostname/", $lease[$compteur])) { // take name preg_match("/\"(.*)\"/", $lease[$compteur], $clienthostname); $clienthostname[0] = preg_replace("/\"/", "", $clienthostname[0]); } $compteur = $compteur + 1; } if ($mode_fich_debug == "y") { fwrite($fich, "\n"); fwrite($fich, "\$ip[0]=" . $ip[0] . "\n"); fwrite($fich, "\$macaddr[0]=" . $macaddr[0] . "\n"); fwrite($fich, "\$clienthostname[0]=" . $clienthostname[0] . "\n"); } if ($etat == "1") { // On a bien 'binding state active' pour cette IP... malheureusement on peut avoir deux ip avec ca pour une meme adresse MAC if ((!registred($macaddr[0])) && ($macaddr[0] != gettext("unresolved"))) { // Adresse MAC trouvee dans le leases et pas deja enregistree dans la table se3_dhcp if (!isset($liste_noms_en_lease["$macaddr[0]"])) { $liste_noms_en_lease["$macaddr[0]"] = array(); } if (($mode_debug == 'y') || ((strtolower($clienthostname[0]) != 'unresolved') && (!in_array(strtolower($list_computer[$loop]['cn']), $liste_noms_en_lease["$macaddr[0]"])))) { $liste_noms_en_lease["$macaddr[0]"][] = strtolower($clienthostname[0]); if ($mode_fich_debug == "y") { fwrite($fich, "\$liste_noms_en_lease[\"$macaddr[0]\"][]=" . strtolower($clienthostname[0]) . "\n"); } } if ((!in_array($macaddr[0], $client["macaddr"]))) { if ($mode_fich_debug == "y") { fwrite($fich, "Adresse Mac non encore traitee.\n"); } $client["macaddr"][$compteur_clients] = $macaddr[0]; $client["hostname"][$compteur_clients] = $clienthostname[0]; $liste_noms_ldap["$macaddr[0]"] = array(); if ($mode_fich_debug == "y") { fwrite($fich, "\$client[\"hostname\"][$compteur_clients]=" . $client["hostname"][$compteur_clients] . "\n"); } if ($client["hostname"][$compteur_clients] == gettext("unresolved")) { // Le nom n'a pas ete trouve dans le dhcpd.leases pour cette section if ($mode_fich_debug == "y") { fwrite($fich, "\$client[\"hostname\"][$compteur_clients] est unresolved.\n"); } //$list_computer=search_machines("(&(cn=*)(ipHostNumber=$ip[0]))","computers"); $list_computer = search_machines("(&(cn=*)(macAddress=$macaddr[0]))", "computers"); if (count($list_computer) > 1) { $resolutiondunom = "doublon_ldap"; $client["hostname"][$compteur_clients] = $resolutiondunom; if ($mode_fich_debug == "y") { fwrite($fich, "\$client[\"hostname\"][$compteur_clients]=" . $resolutiondunom . "\n"); } } elseif (count($list_computer) > 0) { $resolutiondunom = $list_computer[0]['cn']; $client["hostname"][$compteur_clients] = $resolutiondunom; if ($mode_fich_debug == "y") { fwrite($fich, "\$client[\"hostname\"][$compteur_clients]=" . $resolutiondunom . "\n"); } } elseif ($mode_fich_debug == "y") { fwrite($fich, "Adresse Mac non trouvee dans le LDAP.\n"); } $tab_recherche_ldap_faite[] = $macaddr[0]; for ($loop = 0; $loop < count($list_computer); $loop++) { //echo " ".$list_computer[$loop]['cn']; if (($mode_debug == 'y') || (!in_array(strtolower($list_computer[$loop]['cn']), $liste_noms_ldap["$macaddr[0]"]))) { $liste_noms_ldap["$macaddr[0]"][] = strtolower($list_computer[$loop]['cn']); if ($mode_fich_debug == "y") { fwrite($fich, "\$liste_noms_ldap[\"$macaddr[0]\"][]=" . strtolower($list_computer[$loop]['cn']) . "\n"); } } } } else { // Il y a un hostname dans le lease if (!in_array($macaddr[0], $tab_recherche_ldap_faite)) { // On controle quand meme si il y a d'autres noms dans le LDAP (pour affichage) $list_computer = search_machines("(&(cn=*)(macAddress=$macaddr[0]))", "computers"); if (count($list_computer) > 0) { for ($loop = 0; $loop < count($list_computer); $loop++) { //echo " ".$list_computer[$loop]['cn']; if (($mode_debug == 'y') || (!in_array(strtolower($list_computer[$loop]['cn']), $liste_noms_ldap["$macaddr[0]"]))) { $liste_noms_ldap["$macaddr[0]"][] = strtolower($list_computer[$loop]['cn']); if ($mode_fich_debug == "y") { fwrite($fich, "\$liste_noms_ldap[\"$macaddr[0]\"][]=" . strtolower($list_computer[$loop]['cn']) . "\n"); } } } } elseif ($mode_fich_debug == "y") { fwrite($fich, "Adresse Mac non trouvee dans le LDAP.\n"); } } } $client["ip"][$compteur_clients] = $ip[0]; $client["parc"][$compteur_clients] = search_parcs($clienthostname[0]); $compteur_clients++; } else { // On controle quand meme si il y a d'autres noms dans le LDAP (pour affichage) if (!in_array($macaddr[0], $tab_recherche_ldap_faite)) { $list_computer = search_machines("(&(cn=*)(macAddress=$macaddr[0]))", "computers"); if (count($list_computer) > 0) { for ($loop = 0; $loop < count($list_computer); $loop++) { //echo " ".$list_computer[$loop]['cn']; if (($mode_debug == 'y') || (!in_array(strtolower($list_computer[$loop]['cn']), $liste_noms_ldap["$macaddr[0]"]))) { $liste_noms_ldap["$macaddr[0]"][] = strtolower($list_computer[$loop]['cn']); if ($mode_fich_debug == "y") { fwrite($fich, "\$liste_noms_ldap[\"$macaddr[0]\"][]=" . strtolower($list_computer[$loop]['cn']) . "\n"); } } } } elseif ($mode_fich_debug == "y") { fwrite($fich, "Adresse Mac non trouvee dans le LDAP.\n"); } } if (($mode_debug == 'y') || ((strtolower($clienthostname[0]) != 'unresolved') && (!in_array(strtolower($clienthostname[0]), $liste_noms_en_lease["$macaddr[0]"])))) { $liste_noms_en_lease["$macaddr[0]"][] = strtolower($clienthostname[0]); if ($mode_fich_debug == "y") { fwrite($fich, "\$liste_noms_en_lease[\"$macaddr[0]\"][]=" . strtolower($clienthostname[0]) . "\n"); } } // Et on met a jour l'IP en supposant que la derniere IP recue est la bonne $tmp_tab = array(); $tmp_tab = $client["macaddr"]; $tmp_tab = array_flip($tmp_tab); $indice = $tmp_tab[$macaddr[0]]; $liste_autres_ip[$macaddr[0]][] = $client['ip'][$indice]; $client['ip'][$indice] = $ip[0]; } } } } } if (is_array($client["ip"])) { array_multisort($client["hostname"], SORT_ASC, $client["ip"], SORT_ASC, $client["macaddr"], SORT_ASC, $client["parc"]); $client['liste_noms_en_lease'] = $liste_noms_en_lease; $client['liste_noms_ldap'] = $liste_noms_ldap; $client['liste_autres_ip'] = $liste_autres_ip; } else { $client = ""; } if ($mode_fich_debug == "y") { fwrite($fich, "=============================================\n"); fclose($fich); } return $client; } function my_dhcp_form_lease($parser) { $mode_debug = "n"; // Si on passe cette variable a 'y', passer la meme variable a 'y' dans my_parse_dhcpd_lease() require_once("includes/ldap.inc.php"); $content .= "\n"; $content .= "\n"; return $content; } /** * MAKE a form with lease info get in dhcpd.lease * @Parametres $parser : tableau : ip mac hostname * @Return Affichage HTML d'un form a partir du dhcp.leases */ function dhcp_form_lease($parser) { require_once("includes/ldap.inc.php"); $content .= "\n"; $content .= ""; return $content; } /** * form to modify entry in dhcpd reservation * @Parametres $error : Message d'erreur * @Return Affichage HTML d'un form */ function form_existing_reservation() { require_once("includes/ldap.inc.php"); require_once ("ihm.inc.php"); require_once ("printers.inc.php"); // Recuperation des donnees dans la base SQL if (($_GET['order'] == "") || ($_GET['order'] == "ip")) { $query = "SELECT * FROM `se3_dhcp` ORDER BY INET_ATON(IP) ASC"; } else { $query = "SELECT * FROM `se3_dhcp` ORDER BY " . $_GET['order'] . " ASC"; } $result = mysql_query($query); //recup liste ip imprimantes $liste_imprimantes=search_imprimantes("printer-name=*","printers"); //$resultat=search_imprimantes("printer-name=$mpenc","printers"); for ($loopp=0; $loopp < count($liste_imprimantes); $loopp++) { $printer_uri = $liste_imprimantes[$loopp]['printer-uri']; $printer_name = $liste_imprimantes[$loopp]['printer-name']; //echo "liste imp : $printer_name $printer_uri" ; continue; } $clef = 0; $content .= "\n"; $content .= ""; return $content; } // Return select form whith parc where host is not recorded /** * Return select form whith parc where host is not recorded * @Parametres $parcs parc dans lequel on veut ajouter - $keys * @Return Affichage HTML d'un select avec la liste des parcs */ function add_to_parc($parcs, $keys) { require_once("includes/ldap.inc.php"); $liste_parcs = search_machines("objectclass=groupOfNames", "parcs"); if (count($liste_parcs)>0) { $ret .=""; } return $ret; } /** * renvoie l'ip si elle est libre ou une ip fixe libre dans le meme vlan * @Parametres $ip : Adresse IP a tester * @Return adresse ip libre */ function get_free_ip($ip) { include ("config.inc.php"); require_once ("ihm.inc.php"); $reseau = get_vlan($ip); $calcul_ip = floatval(sprintf("%u", ip2long($ip))); $ipmin = floatval(sprintf("%u", $reseau['ipmin'])); $ipmax = floatval(sprintf("%u", $reseau['ipmax'])); $gateway = floatval(sprintf("%u", $reseau['gateway'])); $begin_range = floatval(sprintf("%u", $reseau['begin_range'])); $end_range = floatval(sprintf("%u", $reseau['end_range'])); if ((reservation($ip)) or ($ip == long2ip($reseau['gateway'])) or (($calcul_ip >= $begin_range) and ($calcul_ip <= $end_range))) { $calcul_free = $reseau['ipmin']; while (floatval(sprintf("%u", $calcul_free)) <= $ipmax) { if ((fping(long2ip($calcul_free)) == 1) or (reservation(long2ip($calcul_free)) or ($calcul_free == $reseau['gateway']))) { $calcul_free++; } elseif ($calcul_free == $reseau['begin_range']) { $calcul_free = $reseau['end_range'] + 1; } else { // print long2ip($calcul_free) . "le coupable Attention : Si l'emetteur ne reboote pas tout seul en administrateur local, ouvrez une session administrateur local et lancez
c:\\netinst\\shutdown.cmd
Attention : si l'emetteur ne reboote pas tout seul en administrateur local, ouvrez une session administrateur local et lancez
c:\\netinst\\shutdown.cmd