czf4bfu |
Subversion Repositories: |
Compare with Previous - Blame - Download
<?php
error_reporting(0);
// Nastavime, aby se nam zbytecne nelogovaly chyby
ini_set('log_errors',false);
// max_execution_time, pro fungovani je nutne vypnout Safe_mod
set_time_limit(0);
/*$starttime = microtime();
$startarray = explode(" ", $starttime);
$starttime = $startarray[1] + $startarray[0];*/
header("Content-Type: text/html; charset=windows-1250");
setlocale(LC_ALL, 'cs_CZ', 'czech', 'cs_CZ.windows.1250');
$verze = "1.9";
$jmena_cloudu = array("10.1.0.0/16" => "Connection.cz / AS Centrum network",
"10.2.0.0/16" => "Praha - Connection.cz",
"10.10.0.0/16" => "reserved",
"10.11.0.0/16" => "Praha - Střeovice, Břevnov, Hradčany, Strahov",
"10.12.0.0/16" => "Praha - Nusle, Michle, Vrovice, Vinohrady",
"10.13.0.0/16" => "Praha - Stodůlky, Nové Butovice, Luka, Luiny, Řeporyje, Jinonice",
"10.15.0.0/16" => "Praha - Malvazinky, Koíře, Motol",
"10.16.0.0/16" => "Praha - Barrandov",
"10.17.0.0/16" => "Praha - Záběhlice, Zahradní město",
"10.18.0.0/16" => "Praha - Dejvice, Podbaba",
"10.19.0.0/16" => "Praha - Suchdol, Lysolaje, Hanspaulka, Horoměřice",
"10.20.0.0/16" => "Praha - P6 - Dědina, Liboc, Ruzyně",
"10.21.0.0/16" => "Praha - Řepy, Zličín",
"10.22.0.0/16" => "Praha - Holeovice",
"10.23.0.0/16" => "Praha - Vinohrady, Vrovice, Michle, Nusle, ikov",
"10.24.0.0/16" => "Praha - Jarov, Stranice, Maleice, Skalka",
"10.25.0.0/16" => "Praha - Hlubočepy, Podolí, Braník",
"10.26.0.0/16" => "Praha - Radotín, Zbraslav, Lipence",
"10.27.0.0/16" => "Praha - Modřany, Velká Chuchle, Hodkovičky",
"10.28.0.0/16" => "Praha - VYPAL (VYsočany, PAlmovka, Libeň)",
"10.30.0.0/16" => "Praha - Jarov, Stranice, Maleice, Skalka, Hostivař",
"10.31.0.0/16" => "Praha - Bohnice, Čimice",
"10.32.0.0/16" => "Praha - Dolní Chabry, Ďáblice, Kobylisy, Vychovatelna",
"10.33.0.0/16" => "Praha - Prosek, Letňany, Čakovice",
"10.34.0.0/16" => "Praha - Letná, trossmajerák",
"10.37.0.0/16" => "Praha - Radotín",
"10.38.0.0/16" => "Praha - Chodov, Opatov, Háje, Kateřinky",
"10.39.0.0/16" => "Praha - ibřina, Újezd nad Lesy, Koloděje, Květnice",
"10.40.0.0/16" => "Praha - Krč, sidl.Novodvorská, Kačerov, Spořilov, Roztyly",
"10.41.0.0/16" => "HMNet - Horní Měcholupy, Horní Počernice, Kyje, Dubeč",
"10.43.0.0/16" => "Řepná pole, Vinoř",
"10.44.0.0/16" => "Praha - Podolí",
"10.51.0.0/16" => "Praha - Petřiny",
"10.55.0.0/16" => "Praha - Centrum",
"10.58.0.0/16" => "Praha 1",
"10.63.0.0/17" => "Rakovník a okolí",
"10.64.0.0/17" => "Křivoklátsko a okolí",
"10.66.0.0/16" => "Hostivice, Chýně, Ptice, Červený Újezd, Sobín",
"10.67.0.0/16" => "Rudná u Prahy, Ptice, Úhonice, Drahelčice",
"10.69.0.0/17" => "Mělník a okolí",
"10.69.128.0/17" => "Neratovice a okolí",
"10.70.0.0/16" => "Beroun a okolí",
"10.76.0.0/16" => "Plzeň - PilsFree",
"10.80.0.0/16" => "České Budějovice",
"10.88.0.0/16" => "Říčany a okolí",
"10.89.0.0/16" => "Mnichovice",
"10.92.0.0/19" => "Libčice nad Vltavou",
"10.93.0.0/16" => "Čelákovice",
"10.94.0.0/17" => "Mladá Boleslav a okolí",
"10.98.0.0/16" => "Unho, Chýně, Červený Újezd, Ptice, Nouzov, Kysice, Brakov, Horní Bezděkov a dalí",
"10.101.0.0/16" => "Liberec",
"10.102.0.0/16" => "Klfree.net - Kladno, Unho a okolí",
"10.103.0.0/16" => "Karlovy Vary",
"10.105.0.0/17" => "Kolín",
"10.106.0.0/16" => "KHnet - Kutná Hora",
"10.107.0.0/16" => "Hradec Králové",
"10.108.0.0/16" => "České Budějovice",
"10.109.0.0/16" => "Plzeň",
"10.110.0.0/17" => "Chrudim, Pardubice, Křiánovice a okolí",
"10.110.128.0/17" => "PlzenecNET o.s. - Starý Plzenec",
"10.111.0.0/20" => "ihle",
"10.111.64.0/18" => "Toukov.NET",
"10.111.128.0/17" => "Tremnet - Třemoná a okolí",
"10.113.0.0/16" => "Louny, atec, Pobořany",
"10.114.0.0/16" => "Příbram",
"10.115.0.0/16" => "Bubakov.czf - Nové Straecí a okolí",
"10.117.0.0/16" => "Turnov a okolí",
"10.120.0.0/18" => "MH2Net - Mnichovo Hraditě směr Turnov",
"10.121.0.0/18" => "Steadynet - Nové Město na Moravě a okolí",
"10.128.0.0/15" => "Brno - město",
"10.128.0.0/16" => "Brno - město",
"10.129.0.0/16" => "okolí Brna",
"10.129.24.0/21" => "Tinov",
"10.130.0.0/16" => "Severní Morava",
"10.131.0.0/16" => "Uherské Hraditě",
"10.132.0.0/16" => "Střední Morava - Olomouc",
"10.133.0.0/16" => "PVfree.net - Prostějov",
"10.134.0.0/16" => "Přerovsko",
"10.135.0.0/16" => "BrNet - Brno",
"10.136.0.0/16" => "testovací sítě pro Moravu",
"10.143.0.0/16" => "UnArt Slavičín",
"10.145.0.0/16" => "Vsetín a okolí",
"10.152.0.0/14" => "Ostrava - okres",
"10.152.0.0/16" => "Ostrava - okres",
"10.153.0.0/16" => "Ostrava - okres",
"10.154.0.0/16" => "Ostrava - okres",
"10.155.0.0/16" => "Ostrava - okres",
"10.161.0.0/16" => "Evkanet - Ostrava",
"10.193.64.0/18" => "Varnsdorf a okolí",
"10.225.0.0/16" => "CZFree-ol - Olomouc",
"10.253.0.0/16" => "NFX z.s.p.o.",
"10.254.0.0/16" => "NCX Labyrint");
function arfsort($a) {
usort($a,'arfsort_func');
return $a;
}
function arfsort_func($a, $b) {
$order[0][0] = "TYP";
$order[1][0] = "NAZEV";
foreach($order as $f) {
$strc = strcasecmp($a[$f[0]],$b[$f[0]]);
if ($strc!=0) {
return $strc;
}
}
return 0;
}
function natsort_func($a,$b){
$strc = strnatcmp($a,$b);
if ($strc!=0) {
return $strc;
}
return 0;
}
function get_icon($bfufile, $icon, $typ) {
if(isset($icon)) {
preg_match('/^(.*)\/([^\/]+)$/i', $icon, $iconname);
$ikonka = "cache/".$bfufile."_".$iconname[2];
if(!file_exists($ikonka)) {
$ikonka = "ikony/".$typ.".png";
if(!file_exists($ikonka)) {
$ikonka = "ikony/none.png";
}
}
} else {
$ikonka = "ikony/".$typ.".png";
if(!file_exists($ikonka)) { $ikonka = "ikony/none.png"; }
}
return $ikonka;
}
function show_small($test) {
$string = "";
foreach ($test as $key=>$row) {
$oblastx = $row["OBLAST"];
$typ = $row["TYP"];
$nazev = $row["NAZEV"];
$id = $row["ID"];
$ikonka = $row["BFUICON"];
$string .= "<div class=\"smallicon\"><a title=\"$nazev\" href=\"?id=$id&oblast=$oblastx#$oblastx\"><img title=\"$nazev\" src=\"$ikonka\"><span>$nazev</span></a></div>\n";
}
return $string;
}
function show_big($test) {
$string = "";
foreach ($test as $row) {
$oblastx = $row["OBLAST"];
$typ = $row["TYP"];
$nazev = $row["NAZEV"];
$popis = $row["POPIS"];
$id = $row["ID"];
$ikonka = $row["BFUICON"];
$string .= "<div class=\"icon\"><a title=\"".$popis."\" href=\"?id=".$id."&oblast=".$oblastx."#".$oblastx."\"><img title=\"".$popis."\" src=\"$ikonka\"><br>".$nazev."</a></div>\n";
}
return $string;
}
function show_groups($test) {
$pamatuj = "";
$string = "";
$x = 0;
foreach ($test as $row) {
$oblastx = $row["OBLAST"];
$typ = $row["TYP"];
$nazev = $row["NAZEV"];
$popis = $row["POPIS"];
$id = $row["ID"];
$ikonka = $row["BFUICON"];
if ($typ===$pamatuj) {
$string .= "<div class=\"icon\"><a title=\"".$popis."\" href=\"?id=".$id."&oblast=".$oblastx."#".$oblastx."\"><img title=\"".$popis."\" src=\"$ikonka\"><br>".$nazev."</a></div>\n";
} else {
if($x==0) { $nomargin = "nomargin "; $x==1; } else { $nomargin = ""; }
$string .= "<div class=\"sizer\"></div><a name=\"".$typ."\" href=\"#".$typ."\" class=\"".$nomargin."title\">".$typ."</a>\n";
$string .= "<div class=\"icon\"><a title=\"".$popis."\" href=\"?id=".$id."&oblast=".$oblastx."#".$oblastx."\"><img title=\"".$popis."\" src=\"$ikonka\"><br>".$nazev."</a></div>\n";
}
$pamatuj = $typ;
}
return $string;
}
function show_clouds($test, $jmena_cloudu) {
$string = "";
foreach ($test as $row) {
if($row!="") {
$cl_popis = $jmena_cloudu["$row"];
$cl_naz = $row;
$cl_nazev = $row."<br>".$cl_popis;
$string .= "<div class=\"icon2\"><a title=\"".$cl_popis."\" href=\"?oblast=".$cl_naz."#".$cl_naz."\"><img title=\"".$cl_popis."\" src=\"img/cloud.png\"><br>".$cl_nazev."</a></div>\n";
}
}
return $string;
}
function show_details($test) {
$ikonka_det = $test["TYP"];
$ikonka_url = $test["BFUICON"];
$string = "<div class=\"det\"><div class=\"icon_det\"><img alt=\"$ikonka_det\" src=\"$ikonka_url\"></div><div class=\"info_det\">";
foreach ($test as $key => $row) {
if(!preg_match('%^(?:HESLOEDIT|SOURCE|BFUFILE|BFUICON|ID|#)%',$key)) {
if (preg_match('%^URL(?:|IP|INET)%',$key)) {
if (!preg_match('%\://%',$row)) {
$row = "<a href=\"http://".$row."\">http://".$row."</a>";
} else {
$row = "<a href=\"".$row."\">".$row."</a>";
}
}
if($key!="") {
$string .= "<strong>".$key."</strong>: ".$row."<br>";
}
}
}
return $string."</div><div class=\"info_cut\"></div></div>";
}
$seznam = array();
echo "<!--CZF4BFU ";
if (function_exists('scandir')) {
$scan = scandir(".");
foreach($scan as $file) {
if (preg_match('/^(?:global|local)-.*.txt$/',$file)) {
echo $file." ";
$seznam[] = $file;
}
}
} else {
if ($dir = opendir(".")) {
while (($file = readdir($dir)) !== false)
if (preg_match('/^(?:global|local)-.*.txt$/',$file)) {
echo $file." ";
$seznam[] = $file;
}
}
}
echo "-->\n";
$group = $_GET["group"];
$czf_group = $group;
$czf_oblast = $_GET["oblast"];
$czf_id = $_GET["id"];
if(!empty($seznam)) {
$item = array();
$items = array();
$oblast = array();
$polozka=-1;
$patterns = array('%OBLAST\:([\s\t]+)?([\r\v\n]+)%i', '%ICON\:([\s\t]+)?([\r\v\n]+)%i', '%\:(?:\s|\t)+%', '%\\\\([\r\v\n])+%');
$replacements = array("OBLAST:10.0.0.0/8\n", "", ":", "\\");
$trans = array("\\" => "\\n", (chr(13)) => "", (chr(9)) => "", "ž" => "ž", "š" => "š");
foreach($seznam as $fil) {
$dat = file_get_contents($fil);
$dat = strtr(preg_replace($patterns, $replacements, $dat), $trans);
$data = explode("\n", $dat);
$soucet = count($data);
for($j=0; $j<=$soucet; ++$j) {
if ((($data[$j]!="") and ($data[$j]!=" ")) and ($data[$j][0]!=(chr(13)))) {
if (preg_match('%^TYP:%i',$data[$j])) {
$polozka++;
preg_match('/^(?:global|local)-(.*).txt$/i', $fil, $filen);
$item[$polozka]="BFUFILE:".$filen[1]."<br>";
}
$item[$polozka]=$item[$polozka].$data[$j]."<br>";
}
}
}
// ------- naladujem data do 3-rozmernyho pole -------
for ($k=0; $k<=$polozka; ++$k) {
if(preg_match('%OBLAST:%i', $item[$k])) {
preg_match('%OBLAST:(.*?)(<br)%i', $item[$k], $cloud);
if (!isset($obl["$cloud[1]"])) {
$oblast[] = $cloud[1];
}
} else {
$cloud[1] = "10.0.0.0/8";
}
$ic = explode("<br>", $item[$k]);
$cnt_ic = (count($ic));
for ($b=0; $b<=$cnt_ic; ++$b) {
if($b===$cnt_ic) {
$items[$k]["BFUICON"]=get_icon($items[$k]["BFUFILE"], $items[$k]["ICON"], $items[$k]["TYP"]);
$items[$k]["ID"]=$k;
} else {
if(($ic[$b])!="") {
$ic[$b] = strtr($ic[$b], array("\\n\\n" => "<br>", "\\n" => "<br>"));
$pole = strpos($ic[$b], ":");
$items[$k][(strtoupper(substr($ic[$b], 0, $pole)))]=(substr($ic[$b], $pole+1));
}
}
}
$obl[$cloud[1]][] = $items[$k];
}
unset($item);
unset($trans);
$pocet_oblasti = count($oblast)-1;
// -- seradime oblasti (bublinkovy razeni je silene pomaly)
usort($oblast,'natsort_func');
} //end seznam
$title = "CZF4BFU";
if($czf_oblast!="") {
if(isset($jmena_cloudu[$czf_oblast])) {
$title .= " | ".$jmena_cloudu[$czf_oblast];
} else {
$title .= " | ".$czf_oblast;
}
}
if($czf_id!="") {
$title .= " | ".$items[$czf_id]["NAZEV"];
}
if($czf_group=="2") {
$title .= " | Cloudy";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- Unreal][ # http://www.jklir.net # Licence: GNU/GPL # v <?php echo $verze ?> (c) Jirka Klír 2013 for CZFree.net ;-) # -->
<title><?php echo $title; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta http-equiv="Content-language" content="cs">
<meta name="author" content="Unreal][, http://www.jklir.net">
<link href="styl.css" rel="stylesheet" type="text/css">
<link rel="SHORTCUT ICON" href="favicon.ico">
</head>
<body>
<h1>Rozcestník CZFree.Net</h1>
<?php
if($group!=2) {
if($czf_oblast!="") { $aname = "#".$czf_oblast; } else { $aname = ""; }
$group = !$group;
$text = (!empty($group)) ? "seskupit" : "neseskupovat";
echo "<a class=\"group\" href=\"?group=".$group."&id=".$czf_id."&oblast=".$czf_oblast.$aname."\">$text podle typu služeb</a>";
} else {
echo "<a class=\"group\" href=\"#\"> </a>";
}
?>
<div class="sizer"></div>
<div class="tree">
<a class="nomargin title" href="?oblast="><strong>CZFree.net</strong><br>celá sí</a>
<div class="smallicon"><a title="seznam slueb" href="?oblast="><img class="dot" src="img/point.png"><span>seznam slueb</span></a></div>
<div class="smallicon"><a title="seznam cloudů" href="?group=2"><img class="dot" src="img/point.png"><span>seznam cloudů</span></a></div>
<?php
if(!empty($seznam)) {
// ------- vypis ve sloupecku vlevo -------
for ($o=0; $o<=$pocet_oblasti; $o++) {
echo "<a class=\"title\" name=\"".$oblast[$o]."\" href=\"?oblast=".$oblast[$o]."#".$oblast[$o]."\"><span class=\"cloudip\">".$oblast[$o]."</span>\n";
if(isset($jmena_cloudu[$oblast[$o]])) {
echo "<br>".$jmena_cloudu[$oblast[$o]]."</a>";
} else {
echo "</a>";
}
$sorted[$oblast[$o]] = arfsort($obl[$oblast[$o]]);
echo show_small($sorted[$oblast[$o]]);
}
unset($obl);
?>
</div>
<div class="items">
<?php
//############# PODMINKY ZOBRAZENI ###############//
if(($czf_group!="1") and ($czf_group!="2")) { $czf_group = ""; }
// ------- pokud neni uvedena oblast ani id ani groupa -------
if ((($czf_oblast=="") and ($czf_id=="")) and ($czf_group=="")) {
$sorted0 = arfsort($items);
echo show_big($sorted0)."<div class=\"sizer\"></div></div>";
}
// ------- pokud neni uvedena oblast ani id ale groupa ano -------
elseif ((($czf_oblast=="") and ($czf_id=="")) and ($czf_group=="1")) {
$sorted0 = arfsort($items);
echo show_groups($sorted0)."<div class=\"sizer\"></div></div>";
}
// ------- pokud neni uvedena oblast ani id ale groupa je 2 -------
elseif ((($czf_oblast=="") and ($czf_id=="")) and ($czf_group=="2")) {
echo show_clouds($oblast, $jmena_cloudu)."<div class=\"sizer\"></div></div>";
}
// ------- pokud je uvedena oblast i id sluzby ale groupa ne -------
elseif ((($czf_oblast!="") and ($czf_id!="")) and ($czf_group=="")) {
echo show_big($sorted[$czf_oblast])."<div class=\"sizer\"></div></div>\n<div class=\"detail\"><div class=\"nomargin title\"><strong>Detaily:</strong></div><div class=\"contents\">\n";
if ($czf_id<=$polozka) {
echo show_details($items[$czf_id]);
} else {
echo "<br>Poloka neexistuje<br>";
}
echo "</div></div>\n";
}
// ------- pokud je uvedena oblast i id sluzby i groupa -------
elseif ((($czf_oblast!="") and ($czf_id!="")) and ($czf_group=="1")) {
echo show_groups($sorted[$czf_oblast])."<div class=\"sizer\"></div></div>\n<div class=\"detail\"><div class=\"nomargin title\"><strong>Detaily:</strong></div><div class=\"contents\">\n";
if ($czf_id<=$polozka) {
echo show_details($items[$czf_id]);
} else {
echo "<br>Poloka neexistuje<br>";
}
echo "</div></div>\n";
}
// ------- pokud neni uvedena oblast ale id a groupa ne -------
elseif ((($czf_oblast=="") and ($czf_id!="")) and ($czf_group=="")) {
if ($czf_id<=$polozka) {
if(($items[$czf_id]["OBLAST"])=="") {
$sorted4 = $sorted["10.0.0.0/8"];
} else {
$sorted4 = $sorted[$items[$czf_id]['OBLAST']];
}
echo show_big($sorted4);
} else {
$sorted0 = arfsort($items);
echo show_big($sorted0);
}
echo "<div class=\"sizer\"></div></div>\n<div class=\"detail\"><div class=\"nomargin title\"><strong>Detaily:</strong></div><div class=\"contents\">\n";
if ($czf_id<=$polozka) {
echo show_details($items[$czf_id]);
} else {
echo "<br>Poloka neexistuje<br>";
}
echo "</div></div>\n";
}
// ------- pokud neni uvedena oblast ale id a groupa ano -------
elseif ((($czf_oblast=="") and ($czf_id!="")) and ($czf_group=="1")) {
if ($czf_id<=$polozka) {
if(($items[$czf_id]["OBLAST"])=="") {
$sorted4 = $sorted["10.0.0.0/8"];
} else {
$sorted4 = $sorted[$items[$czf_id]['OBLAST']];
}
echo show_groups($sorted4);
} else {
$sorted0 = arfsort($items);
echo show_groups($sorted0);
}
echo "<div class=\"sizer\"></div></div>\n<div class=\"detail\"><div class=\"nomargin title\"><strong>Detaily:</strong></div><div class=\"contents\">\n";
if ($czf_id<=$polozka) {
echo show_details($items[$czf_id]);
} else {
echo "<br>Poloka neexistuje<br>";
}
echo "</div></div>\n";
}
// ------- pokud je uvedena oblast ale ne id ani groupa -------
elseif ((($czf_oblast!="") and ($czf_id=="")) and ($czf_group=="")){
echo show_big($sorted[$czf_oblast])."<div class=\"sizer\"></div></div>\n";
}
// ------- pokud je uvedena oblast a groupa ale ne id -------
elseif ((($czf_oblast!="") and ($czf_id=="")) and ($czf_group=="1")){
echo show_groups($sorted[$czf_oblast])."<div class=\"sizer\"></div></div>\n";
} else { break; }
unset($items);
unset($oblast);
} // end seznam
/*$endtime = microtime();
$endarray = explode(" ", $endtime);
$endtime = $endarray[1] + $endarray[0];
$totaltime = $endtime - $starttime;
$totaltime = round($totaltime,5);
echo "<br>Skript to vsechno stihnul v rekordnim case $totaltime sekund :-).";*/
?>
<div id="copy">czf4bfu v<?php echo $verze ?> - made <a href="http://www.jklir.net/">Unreal][</a> </div>
</body>
</html>