function free_ips($room = false) { global $dataMySQL, $_HOSTEL_NETS, $_POST, $A_, $_NEW_HOSTEL_NETS; $dataMySQL->ExecuteSQL("SELECT s_ip, s_net FROM " . DB_PREFIX . "users WHERE 1\t;"); $data0 = $dataMySQL->ArrayResults(); $lS2 = ""; for ($i = 0; $i < count($data0); $i++) { $aS[$data0[$i]['s_net']][$data0[$i]['s_ip']] = $data0[$i]['s_ip']; } $B_ = array(); foreach ($_NEW_HOSTEL_NETS as $key => $value) { $index = str_replace(".", "_", $value["fpip"]) . "" . $value["net"] . "_" . $value["fip"] . "__" . $value["mask"]; $B_[$index] = $value['rooms']; } for ($n = 0; $n < count($_NEW_HOSTEL_NETS); $n++) { $j = $_NEW_HOSTEL_NETS[$n]["net"]; $cc = 0; $ipstart = $_NEW_HOSTEL_NETS[$n]["fip"] + $_NEW_HOSTEL_NETS[$n]["reserved_start"]; $ipstop = calcip($_NEW_HOSTEL_NETS[$n]["fpip"] . $_NEW_HOSTEL_NETS[$n]["net"] . "." . $_NEW_HOSTEL_NETS[$n]["fip"], $_NEW_HOSTEL_NETS[$n]["mask"], "lastip") - $_NEW_HOSTEL_NETS[$n]["reserved_stop"]; $index = str_replace(".", "_", $_NEW_HOSTEL_NETS[$n]["fpip"]) . "" . $_NEW_HOSTEL_NETS[$n]["net"] . "_" . $_NEW_HOSTEL_NETS[$n]["fip"] . "__" . $_NEW_HOSTEL_NETS[$n]["mask"]; $len = mb_strlen($_NEW_HOSTEL_NETS[$n]["desc"], 'UTF-8'); $to = 18 - $len; $s = ""; for ($i = 0; $i < $to; $i++) { $s .= "-"; } $lS2 .= " Сеть {$_NEW_HOSTEL_NETS[$n]["fpip"]}{$j}." . calcip($_NEW_HOSTEL_NETS[$n]["fpip"] . $_NEW_HOSTEL_NETS[$n]["net"] . "." . $_NEW_HOSTEL_NETS[$n]["fip"], $_NEW_HOSTEL_NETS[$n]["mask"], "minip") . "/{$_NEW_HOSTEL_NETS[$n]["mask"]} \n\t\t\t<select name=\"sel" . $index . "\" style=\"width:200px;\" class=\"standartip " . (isset($_POST['room']) && in_array($_POST['room'], $B_[$index]) || !isset($_POST['room']) && isset($room) && in_array($room, $B_[$index]) ? "activeip" : "") . "\">\n\t\t\t"; $lS2 .= "<option value=\"\">--- {$_NEW_HOSTEL_NETS[$n]["desc"]} {$s}---</option>"; for ($i = $ipstart; $i < $ipstop; $i++) { if (!isset($aS[$j][$i])) { $cc++; $lS2 .= "<option value=\"{$_NEW_HOSTEL_NETS[$n]["fpip"]}{$j}.{$i}\">{$_NEW_HOSTEL_NETS[$n]["fpip"]}{$j}.{$i}</option>"; } } $lS2 .= "</select>\n\t\t\t<script>\n\t\t\t\t\$(function() {\n\t\t\t\t\t\$('select[name=\"sel" . $index . "\"]').change( function() {\n \t\t\t\t\t\t\$('input[name=\"ip\"]').val(\$(this).val());\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t</script>\n\t\t\t(" . $cc . ") <br> <small style=\"float:right;\">{$_NEW_HOSTEL_NETS[$n]["desc"]}</small><br />"; } $lS2 .= "\n\t\t<script>\n\t\t\t\tvar nets = Object(" . json_encode($B_) . ");\n\t\t\t\tfunction GetIP(Obj){\n\t\t\t\t\tvar ObjVal = \$(Obj).val();\n\t\t\t\t\tvar IsRoom = 0;\n\t\t\t\t\tvar IP = false;\n\t\t\t\t\t\n\n\t\t\t\t\t\$('select.activeip').removeClass('activeip');\n\n\t\t\t\t\t\$.each(nets, function(index,val1){\n\t\t\t\t\t\t\$('select[name=\"sel'+index+'\"]').val( \$('select[name=\"sel'+index+'\"] option')[0].innetHTML );\n\t\t\t\t\t\t\$.each(val1, function(index2, val2){\n\n\t\t\t\t\t\t\tif (val2 == ObjVal){\n\n\t\t\t\t\t\t\t\tif (!IP){\n\t\t\t\t\t\t\t\t\tIP = true;\n\t\t\t\t\t\t\t\t\t\$('input[name=\"ip\"]').val('');\n\t\t\t\t\t\t\t\t\t\$('select[name=\"sel'+index+'\"]').val( \$('select[name=\"sel'+index+'\"] option')[1].value );\n\t\t\t\t\t\t\t\t\t\$('input[name=\"ip\"]').val(\$('select[name=\"sel'+index+'\"] option')[1].value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tIsRoom = index;\n\t\t\t\t\t\t\t\t\$('select[name=\"sel'+index+'\"]').addClass('activeip');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t</script>\n\t\t\t<style>\n\t\t\t\t.standartip{\n\t\t\t\t\tmargin: 3px;\n\t\t\t\t}\n\t\t\t\t.activeip{\n\t\t\t\t\tbox-shadow: 0px 0px 0px 2px green;\n\t\t\t\t}\n\t\t\t</style>\n\t\t"; /* Старый тип выбора for($i=0;$i<count($data0);$i++) { $aS[$data0[$i]['s_net']][$data0[$i]['s_ip']]=$data0[$i]['s_ip']; } $B_=array(); foreach ($A_ as $key => $value) { //print_r($value); foreach ($value['nets'] as $key2 => $value2) { // print_r($value2); if(!isset($B_[$value2])) $B_[$value2]=array(); $B_[$value2]=array_merge($B_[$value2],$value['room']); // print_r($value['room']); } //print_r($value[1]); } // print_r($B_); //for($j=168;$j<176;$j++) for($n=0;$n<count($_HOSTEL_NETS);$n++) { //print $_POST['room']; //print $room; //if ($j==173 or $j==174) continue; //for($n=0;$n<count($_HOSTEL_NETS);$n++) $j = $_HOSTEL_NETS[$n]; // print_r($B_); if(!in_array($j, $_HOSTEL_NETS)) continue; $cc=0; $lS2.=" Сеть ".$j." <select name=\"sel".$j."\" style=\"width:200px;\" class=\"standartip ".( ( (isset($_POST['room']) && in_array($_POST['room'], $B_[$j])) || ( !isset($_POST['room']) && isset($room) && in_array($room, $B_[$j]) ) )?"activeip":"")."\"> "; $lS2.='<option value="">---------------------</option>'; for($i=6;$i<240;$i++) { if(!isset($aS[$j][$i])) { $cc++; $lS2.='<option value='."192.168.".$j.".".$i.">192.168.".$j.".".$i.'</option>'; } } $lS2.="</select> <script> $(function() { $('select[name=\"sel".$j."\"]').change( function() { $('input[name=\"ip\"]').val($(this).val()); }); }); var nets = Object(".json_encode($B_)."); function GetIP(Obj){ var ObjVal = $(Obj).val(); var IsRoom = 0; var IP = false; $('input[name=\"ip\"]').val(''); $('select.activeip').removeClass('activeip'); $.each(nets, function(index,val1){ $('select[name=\"sel'+index+'\"]').val( $('select[name=\"sel'+index+'\"] option')[0].innetHTML ); $.each(val1, function(index2, val2){ if (val2 == ObjVal){ if (!IP){ IP = true; $('select[name=\"sel'+index+'\"]').val( $('select[name=\"sel'+index+'\"] option')[1].value ); $('input[name=\"ip\"]').val($('select[name=\"sel'+index+'\"] option')[1].value); } IsRoom = index; $('select[name=\"sel'+index+'\"]').addClass('activeip'); } }); }); } </script> <style> .standartip{ margin: 3px; } .activeip{ box-shadow: 0px 0px 0px 2px green; } </style> (".$cc.")<br />"; } */ return $lS2; }
<?php $content .= '<h4 class="alert_success" style="text-indent: 40px;">'; $dhcpbackup = $CONFIG['dhcpbackuppatch']; $dhcppath = $CONFIG['dhcppath']; $ipmanagerpath = ROOT_DIR; $r = mt_rand(0, 9); /*echo $f1 = fopen(ROOT_DIR."/data/make.sh", 'w'); echo $f2 = fopen(ROOT_DIR."/data/unmake.sh", 'w');*/ for ($n = 0; $n < count($_NEW_HOSTEL_NETS); $n++) { //$j=$_NEW_HOSTEL_NETS[$n]["net"]; $minip = calcip($_NEW_HOSTEL_NETS[$n]["fpip"] . $_NEW_HOSTEL_NETS[$n]["net"] . "." . $_NEW_HOSTEL_NETS[$n]["fip"], $_NEW_HOSTEL_NETS[$n]["mask"], "minip"); $maxip = calcip($_NEW_HOSTEL_NETS[$n]["fpip"] . $_NEW_HOSTEL_NETS[$n]["net"] . "." . $_NEW_HOSTEL_NETS[$n]["fip"], $_NEW_HOSTEL_NETS[$n]["mask"], "maxip"); $net = "{$_NEW_HOSTEL_NETS[$n]["fpip"]}{$_NEW_HOSTEL_NETS[$n]["net"]}.{$minip}-"; $text1 .= "\nmv {$dhcpbackup}/{$net}sub.conf.6 {$dhcpbackup}/{$net}sub.conf.7\nmv {$dhcpbackup}/{$net}sub.conf.5 {$dhcpbackup}/{$net}sub.conf.6\nmv {$dhcpbackup}/{$net}sub.conf.4 {$dhcpbackup}/{$net}sub.conf.5\nmv {$dhcpbackup}/{$net}sub.conf.3 {$dhcpbackup}/{$net}sub.conf.4\nmv {$dhcpbackup}/{$net}sub.conf.2 {$dhcpbackup}/{$net}sub.conf.3\nmv {$dhcpbackup}/{$net}sub.conf.1 {$dhcpbackup}/{$net}sub.conf.2\nmv {$dhcpbackup}/{$net}sub.conf.0 {$dhcpbackup}/{$net}sub.conf.1\nmv {$dhcppath}/{$net}sub.conf {$dhcpbackup}/{$net}sub.conf.0\ncp {$ipmanagerpath}/data/{$net}sub.conf {$dhcppath}/{$net}sub.conf\necho \"copy {$net} v{$r}\"\n\n "; $text2 .= "\nmv {$dhcpbackup}/{$net}sub.conf.0 {$dhcppath}/{$net}sub.conf\nmv {$dhcpbackup}/{$net}sub.conf.1 {$dhcpbackup}/{$net}sub.conf.0\nmv {$dhcpbackup}/{$net}sub.conf.2 {$dhcpbackup}/{$net}sub.conf.1\nmv {$dhcpbackup}/{$net}sub.conf.3 {$dhcpbackup}/{$net}sub.conf.2\nmv {$dhcpbackup}/{$net}sub.conf.4 {$dhcpbackup}/{$net}sub.conf.3\nmv {$dhcpbackup}/{$net}sub.conf.5 {$dhcpbackup}/{$net}sub.conf.4\nmv {$dhcpbackup}/{$net}sub.conf.6 {$dhcpbackup}/{$net}sub.conf.5\nmv {$dhcpbackup}/{$net}sub.conf.7 {$dhcpbackup}/{$net}sub.conf.6\ntouch {$dhcpbackup}/{$net}sub.conf.7\necho \"uncopy {$net} v{$r}\"\n\n "; } // for($n=0;$n<count($_HOSTEL_NETS);$n++) // { // $net=$_HOSTEL_NETS[$n]; // $text1.=" // mv {$dhcpbackup}/{$net}sub.conf.6 {$dhcpbackup}/{$net}sub.conf.7 // mv {$dhcpbackup}/{$net}sub.conf.5 {$dhcpbackup}/{$net}sub.conf.6 // mv {$dhcpbackup}/{$net}sub.conf.4 {$dhcpbackup}/{$net}sub.conf.5 // mv {$dhcpbackup}/{$net}sub.conf.3 {$dhcpbackup}/{$net}sub.conf.4 // mv {$dhcpbackup}/{$net}sub.conf.2 {$dhcpbackup}/{$net}sub.conf.3 // mv {$dhcpbackup}/{$net}sub.conf.1 {$dhcpbackup}/{$net}sub.conf.2 // mv {$dhcpbackup}/{$net}sub.conf.0 {$dhcpbackup}/{$net}sub.conf.1 // mv {$dhcppath}/{$net}sub.conf {$dhcpbackup}/{$net}sub.conf.0 // cp {$ipmanagerpath}/data/{$net}sub.conf {$dhcppath}/{$net}sub.conf // echo \"copy {$net} v{$r}\"
// По запросу (но есть в _HOSTEL_NETS) $ipstart = calcip($parS[0], $parS[1], "minip"); $ipstop = calcip($parS[0], $parS[1], "lastip"); if (in_array($iparray[0] . "." . $iparray[1] . "." . $iparray[2] . "." . $ipstart . "_" . $parS[1], $_HOSTEL_NETS)) { $isNetExist = true; $qr = "s_net LIKE " . (int) $dataMySQL->real_escape_string($iparray[2]) . " AND ip LIKE '" . $dataMySQL->real_escape_string($iparray[0] . "." . $iparray[1] . "." . $iparray[2]) . ".%' AND s_ip >= " . $dataMySQL->real_escape_string($ipstart) . " AND s_ip <= " . $dataMySQL->real_escape_string($ipstop); } else { foreach ($_NEW_HOSTEL_NETS as $key => $value) { if ($value['mask'] == $parS[1]) { // $content.= $iparray[0].".".$iparray[1]."."; if ($value['fpip'] == $iparray[0] . "." . $iparray[1] . ".") { // $content.=' Found FPIP<br>'; if ($value['net'] == $iparray[2]) { // $content.='> Found NET<br>'; $ipstart = calcip($value["fpip"] . $value["net"] . "." . $value["fip"], $value["mask"], "minip"); $ipstop = calcip($value["fpip"] . $value["net"] . "." . $value["fip"], $value["mask"], "lastip"); if ($iparray[3] >= $ipstart && $iparray[3] <= $ipstop) { // $content.='> Found Net Array<br>'; $isNetExist = true; $qr = "s_net LIKE " . (int) $dataMySQL->real_escape_string($value["net"]) . " AND ip LIKE '" . $dataMySQL->real_escape_string($value["fpip"]) . $dataMySQL->real_escape_string($value["net"]) . ".%' AND s_ip >= " . $dataMySQL->real_escape_string($ipstart) . " AND s_ip <= " . $dataMySQL->real_escape_string($ipstop); } } } } } } } // }else{ // $content.='error! This network was not found!'; // } // $ipstart=$_NEW_HOSTEL_NETS[$n]["fip"]+$_NEW_HOSTEL_NETS[$n]["reserved_start"];