summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2016-06-01 13:42:43 +0200
committerErich Eckner <git@eckner.net>2016-06-01 13:42:43 +0200
commita43846c8d2baed2371897ee882e2502a8848f85e (patch)
tree8e4b713f313ec65ca127f241acaa081fff17fc1c
parentcbc125dee71ad9baa0103c0d0d1e870f021181fe (diff)
downloadsourceMirror-a43846c8d2baed2371897ee882e2502a8848f85e.tar.xz
IP-Adressfilter neu
-rw-r--r--erlaubteAdressen1
-rw-r--r--mirror.php86
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
diff --git a/mirror.php b/mirror.php
index c4c2c83..0b4477b 100644
--- a/mirror.php
+++ b/mirror.php
@@ -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&uuml;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 &ouml;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 &ouml;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");
?>