$val) if ($val=="x") $zeile[$key]=$my_addr[$key]; $zeile = implode(":",$zeile); } if ($zeile == $_SERVER["REMOTE_ADDR"]) break; } if ($zeile != $_SERVER["REMOTE_ADDR"]) { header("Status: 403 Forbidden"); print "Error 403: Access Forbidden for " . $_SERVER["REMOTE_ADDR"] . "\n"; die(); } if (substr($quelle,0,1) != "/") { header("Status: 404 Not Found"); print "Error 403: Invalid path\n"; die(); } $quelle = substr($quelle,1); if ($quelle == "") { exec("find '".$datenWurzel."' -type f -not \( -name .rsync-filter -or -name CACHEDIR.TAG \) | sort",$dateien); foreach ($dateien as $datei) { $pfad = explode("/",substr($datei,strlen($datenWurzel))); array_walk($pfad,"myBaseDecode"); $pfad = implode("/",$pfad); echo ". ".$pfad."
\n"; } } else { $pfad = explode("/",$quelle); array_walk($pfad,"myBaseEncode"); $pfad = implode("/",$pfad); $pfad = $datenWurzel.$pfad; $al = fopen($wurzel."access.log","a"); if (! $al) die("Kann 'access.log' nicht öffnen!"); fwrite($al,date('Y-m-d H:i:s')." ".$pfad."\n"); fclose($al); if (file_exists($pfad)) { $stat = stat($pfad); if ($stat !== false) { if ($stat['size'] == 0) unlink($pfad); } } if (! file_exists($pfad)) { passthru( "mkdir -p '".dirname($pfad)."'; ". "( ". "curl -Ls '".$quelle."' || ". "curl -Ls -A 'Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0' '".$quelle."' || ". "wget -O - '".$quelle."' || " . "wget -O - 'https://crux.ster.zone/distfiles/" . basename($quelle) . "'; ". ") | ". // oder curl! "tee \"".$pfad."\"" ); } else { header('Content-Length: ' . $stat['size']); $handle = fopen($pfad,"r"); fpassthru($handle); fclose($handle); } }