|
<?
|
|
|
|
$cely_soubor=file($soubor_dhcp);
|
|
//$cely_soubor=file("dhcp/pokus.conf");
|
|
|
|
for ($i=2,$u=0;$i<sizeof($cely_soubor);$i++,$u++) {
|
|
$cely_soubor2[$u]=trim(str_replace(";","",$cely_soubor[$i]));
|
|
$cely_soubor2[$u]=str_replace("\"","",$cely_soubor2[$u]);
|
|
}
|
|
//echo $cely_soubor2[0]." radku:".sizeof($cely_soubor2);
|
|
|
|
for ($i=0;$i<sizeof($cely_soubor2);$i++) {
|
|
if ($cely_soubor2[$i]=="") break;
|
|
for ($u=0;$u<sizeof($globalni_parametry);$u++) {
|
|
if (strstr($cely_soubor2[$i],$globalni_parametry[$u]." "))
|
|
$_SESSION[$globalni_zadane_hodnoty[$u]]=str_replace($globalni_parametry[$u]." ","",$cely_soubor2[$i]);
|
|
if ($cely_soubor2[$i]==$globalni_parametry[$u]) $_SESSION[$globalni_zadane_hodnoty[$u]]="check"; //zaskrkavatko
|
|
}
|
|
}
|
|
|
|
for ($i=0,$a=0,$b=0,$c=0;$i<sizeof($cely_soubor2);$i++) { // cisla radku na kterych zacinaji subnety a hosti - pro vytazeni presne tech parametru,ktere pro dany subnet/hosta patri.
|
|
if (strstr($cely_soubor2[$i],"subnet ") && !strstr($cely_soubor2[$i],"#")) { // + vytahnuti "subnet","netmask","host" do promennych formulare
|
|
if(strstr($cely_soubor2[($i-1)],"#"))
|
|
$_SESSION["popis_s".$a]=str_replace("# ","",$cely_soubor2[($i-1)]);
|
|
$cisla_radku_subnet[$a]=$i+1;
|
|
$subnet_pomocna=explode(" ",$cely_soubor2[$i]);
|
|
$_SESSION["subnet".$a]=$subnet_pomocna[1];
|
|
$_SESSION["netmask".$a]=$subnet_pomocna[3];
|
|
$a++;
|
|
}
|
|
if (strstr($cely_soubor2[$i],"host ") && !strstr($cely_soubor2[$i],"#")) {
|
|
if(strstr($cely_soubor2[($i-1)],"#"))
|
|
$_SESSION["popis_h".$b]=str_replace("# ","",$cely_soubor2[($i-1)]);
|
|
$cisla_radku_host[$b]=$i+1;
|
|
$host_pomocna=explode(" ",$cely_soubor2[$i]);
|
|
$_SESSION["host".$b]=$host_pomocna[1];
|
|
$b++;
|
|
}
|
|
if (strstr($cely_soubor2[$i],"group ") && !strstr($cely_soubor2[$i],"#")) {
|
|
if(strstr($cely_soubor2[($i-1)],"#"))
|
|
$_SESSION["popis_g".$c]=str_replace("# ","",$cely_soubor2[($i-1)]);
|
|
$cisla_radku_group[$c]=$i+1;
|
|
$c++;
|
|
}
|
|
}
|
|
$_SESSION['pocet_subnet']=sizeof($cisla_radku_subnet);
|
|
$_SESSION['pocet_host']=sizeof($cisla_radku_host);
|
|
$_SESSION['pocet_group']=sizeof($cisla_radku_group);
|
|
|
|
for ($i=0;$i<$_SESSION['pocet_group'];$i++) {
|
|
$q=0;
|
|
$begin=1;
|
|
$end=0;
|
|
$konec_parametru=0; //jestli se rovna 0, tak projizdi parametry skupiny a uklada je do SESSION..Jakmile narazi na hosta, znamena to konec group parametru
|
|
for ($u=$cisla_radku_group[$i];$u<sizeof($cely_soubor2);$u++) { // jednotlive groupy vyhledava tam, kde presne zacinaji jejich parametry
|
|
if (strstr($cely_soubor2[$u],"{")) $begin++;
|
|
if (strstr($cely_soubor2[$u],"}")) $end++;
|
|
if (($begin-$end)==0) break; // jakmile dojde na konec groupu, tak ukonci cyklus
|
|
if ($konec_parametru==0)
|
|
for ($b=0;$b<sizeof($group_parametry);$b++) {
|
|
if (strstr($cely_soubor2[$u],$group_parametry[$b]." "))
|
|
$_SESSION[$group_zadane_hodnoty[$b].$i]=str_replace($group_parametry[$b]." ","",$cely_soubor2[$u]);
|
|
if ($cely_soubor2[$u]==$group_parametry[$b]) $_SESSION[$group_zadane_hodnoty[$b].$i]="check"; //zaskrkavatko
|
|
}
|
|
if (strstr($cely_soubor2[$u],"host ") && !strstr($cely_soubor2[$i],"#")) {
|
|
$jmeno_hosta=explode(" ",$cely_soubor2[$u]);
|
|
$host_v_groupu[$i][$q]=$jmeno_hosta[1];
|
|
$konec_parametru=1;
|
|
$q++;
|
|
}
|
|
}
|
|
}
|
|
|
|
for ($i=0;$i<$_SESSION['pocet_subnet'];$i++) { // vytahnuti subnet parametru
|
|
$a=0;
|
|
$p=0;
|
|
$q=0;
|
|
$begin=1;
|
|
$end=0;
|
|
$konec_parametru=0;
|
|
for ($u=$cisla_radku_subnet[$i];$u<sizeof($cely_soubor2);$u++) { // jednotlive subnety vyhledava tam, kde presne zacinaji jejich parametry
|
|
if (strstr($cely_soubor2[$u],"{")) $begin++;
|
|
if (strstr($cely_soubor2[$u],"}")) $end++;
|
|
if (($begin-$end)==0) break; // jakmile dojde na konec subnetu, tak ukonci cyklus
|
|
if ($konec_parametru==0)
|
|
for ($b=2;$b<sizeof($subnet_parametry);$b++) {
|
|
if (strstr($cely_soubor2[$u],$subnet_parametry[$b]." ")) {
|
|
$_SESSION[$subnet_zadane_hodnoty[$b].$i]=str_replace($subnet_parametry[$b]." ","",$cely_soubor2[$u]);
|
|
if ($subnet_parametry[$b]=="range") { // vytahnuti range
|
|
$pomocna_range=explode(" ",$cely_soubor2[$u]);
|
|
$_SESSION["range_od".$i."_".$a]=$pomocna_range[1];
|
|
$_SESSION["range_po".$i."_".$a]=$pomocna_range[2];
|
|
$a++;
|
|
$_SESSION["pocet_range".$i]=$a;
|
|
}
|
|
}
|
|
if ($cely_soubor2[$u]==$subnet_parametry[$b]) $_SESSION[$subnet_zadane_hodnoty[$b].$i]="check"; //zaskrkavatko
|
|
}
|
|
if (strstr($cely_soubor2[$u],"group ") && !strstr($cely_soubor2[$u],"#")) {
|
|
$group_v_subnetu[$i][$p]=str_replace("# ","",$cely_soubor2[($u-1)]);
|
|
$konec_parametru=1;
|
|
$p++;
|
|
}
|
|
if (strstr($cely_soubor2[$u],"host ") && !strstr($cely_soubor2[$i],"#")) {
|
|
$jmeno_hosta=explode(" ",$cely_soubor2[$u]);
|
|
$host_v_subnetu[$i][$q]=$jmeno_hosta[1];
|
|
$konec_parametru=1;
|
|
$q++;
|
|
}
|
|
}
|
|
}
|
|
|
|
for ($i=0;$i<$_SESSION['pocet_host'];$i++) { // vytahnuti host parametru
|
|
$begin=1;
|
|
$end=0;
|
|
for ($u=$cisla_radku_host[$i];$u<sizeof($cely_soubor2);$u++) { // jednotlive hosty vyhledava tam, kde presne zacinaji jejich parametry
|
|
if (strstr($cely_soubor2[$u],"{")) $begin++;
|
|
if (strstr($cely_soubor2[$u],"}")) $end++;
|
|
if (($begin-$end)==0) break; // jakmile dojde na konec subnetu, tak ukonci cyklus
|
|
for ($b=1;$b<sizeof($host_parametry);$b++) {
|
|
if (strstr($cely_soubor2[$u],$host_parametry[$b]." "))
|
|
$_SESSION[$host_zadane_hodnoty[$b].$i]=str_replace($host_parametry[$b]." ","",$cely_soubor2[$u]);
|
|
if ($cely_soubor2[$u]==$host_parametry[$b]) $_SESSION[$host_zadane_hodnoty[$b].$i]="check";
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
for ($a=0;$a<$_SESSION['pocet_group'];$a++) {
|
|
if ("group".$a==$group_v_subnetu[$i][$a])
|
|
$_SESSION["pridelit_group".$a]="subnet".$i;
|
|
*/
|
|
for ($i=0;$i<$_SESSION['pocet_subnet'];$i++)
|
|
for ($u=0;$u<$_SESSION['pocet_group'];$u++)
|
|
for ($qq=0;$qq<sizeof($group_v_subnetu[$i]);$qq++)
|
|
if ($_SESSION["popis_g".$u]==$group_v_subnetu[$i][$qq])
|
|
$_SESSION["pridelit_group".$u]="subnet".$i;
|
|
|
|
|
|
for ($i=0;$i<$_SESSION['pocet_subnet'];$i++) // prideleni hosta do patricneho subnetu,pokud do nej patri
|
|
for ($u=0;$u<$_SESSION['pocet_host'];$u++)
|
|
for ($qq=0;$qq<sizeof($host_v_subnetu[$i]);$qq++)
|
|
if ($_SESSION["host".$u]==$host_v_subnetu[$i][$qq])
|
|
$_SESSION["pridelit_hosta".$u]="subnet".$i;
|
|
|
|
|
|
for ($i=0;$i<$_SESSION['pocet_group'];$i++) // prideleni hosta do patricneho skupiny,pokud do ni patri
|
|
for ($u=0;$u<$_SESSION['pocet_host'];$u++) // - jestli jo,tak se predchozi promenna $_SESSION["pridelit_hosta".$u] prepise na group,a tim se prideli do skupiny
|
|
for ($qq=0;$qq<sizeof($host_v_groupu[$i]);$qq++)
|
|
if ($_SESSION["host".$u]==$host_v_groupu[$i][$qq])
|
|
$_SESSION["pridelit_hosta".$u]="group".$i;
|
|
|
|
for ($i=0;$i<$_SESSION['pocet_group'];$i++)
|
|
if ($_SESSION["pridelit_group".$i]=="") $_SESSION["pridelit_group".$i]="toplevel";
|
|
|
|
for ($i=0;$i<$_SESSION['pocet_host'];$i++)
|
|
if ($_SESSION["pridelit_hosta".$i]=="") $_SESSION["pridelit_hosta".$i]="toplevel";
|
|
/*
|
|
foreach($_SESSION as $ind => $val) {
|
|
if (strstr($ind,"pridelit_group") && $val=="") $_SESSION[$ind]="toplevel";
|
|
}
|
|
*/
|
|
?>
|