Exemple #1
0
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 .= "&nbsp; Сеть {$_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>&nbsp;<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.="&nbsp;&nbsp; Сеть ".$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}\"
Exemple #3
0
     // По запросу (но есть в _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"];