diff options
author | Erich Eckner <git@eckner.net> | 2016-06-01 13:42:43 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2016-06-01 13:42:43 +0200 |
commit | a43846c8d2baed2371897ee882e2502a8848f85e (patch) | |
tree | 8e4b713f313ec65ca127f241acaa081fff17fc1c | |
parent | cbc125dee71ad9baa0103c0d0d1e870f021181fe (diff) | |
download | sourceMirror-a43846c8d2baed2371897ee882e2502a8848f85e.tar.xz |
IP-Adressfilter neu
-rw-r--r-- | erlaubteAdressen | 1 | ||||
-rw-r--r-- | mirror.php | 86 |
2 files changed, 55 insertions, 32 deletions
diff --git a/erlaubteAdressen b/erlaubteAdressen new file mode 100644 index 0000000..7b9ad53 --- /dev/null +++ b/erlaubteAdressen @@ -0,0 +1 @@ +127.0.0.1 @@ -1,5 +1,9 @@ <?php +// foreach ($_SERVER as $key => $value) +// echo "'".$key."': '".$value."'<br>\n"; +// die(); + function myBaseEncode(&$item, $key) { $item = base64_encode($item); if ($item == "") @@ -13,47 +17,65 @@ } $quelle = $_SERVER["REQUEST_URI"]; - $wurzel = dirname(__FILE__); - $datenWurzel = $wurzel."/daten/"; + $wurzel = dirname(__FILE__)."/"; + $datenWurzel = $wurzel."daten/"; + + $ea = fopen($wurzel."erlaubteAdressen","r"); + while (! feof($ea)) { + $zeile = trim(fgets($ea)); + if ($zeile == "") + die(); + if ($zeile == $_SERVER["REMOTE_ADDR"]) + break; + } if (substr($quelle,0,1) != "/") die("Ungültiger Pfad!"); $quelle = substr($quelle,1); - $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)) { - $inp = popen( - "mkdir -p '".dirname($pfad)."'; ". - "wget -O - '".$quelle."' | ". - "tee \"".$pfad."\"", - "r"); - - if (! $inp) - die("kann wget nicht starten"); - - fpassthru($inp); - pclose($inp); + if ($quelle == "") { + exec("find '".$datenWurzel."' -type f | sort",$dateien); + foreach ($dateien as $datei) { + $pfad = explode("/",substr($datei,strlen($datenWurzel))); + array_walk($pfad,"myBaseDecode"); + $pfad = implode("/",$pfad); + echo "<a href=\"/".$pfad."\">".$pfad."</a><br>\n"; + } } else { - $inp = fopen($pfad,"r"); - if (! $inp) - die("Kann '".$quelle."' ('".$pfad."') nicht &oouml;ffnen!"); - fpassthru($inp); - fclose($inp); + $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)) { + $inp = popen( + "mkdir -p '".dirname($pfad)."'; ". + "wget -O - '".$quelle."' | ". + "tee \"".$pfad."\"", + "r"); + if (! $inp) + die("kann wget nicht starten"); + + fpassthru($inp); + pclose($inp); + } + else { + $inp = fopen($pfad,"r"); + if (! $inp) + die("Kann '".$quelle."' ('".$pfad."') nicht &oouml;ffnen!"); + fpassthru($inp); + fclose($inp); + } } -// foreach ($_SERVER as $key => $value) -// echo "'".$key."': '".$value."'<br>\n"; + exec("find /srv/sourceMirror/ -type f -size 0c -delete"); ?> |