// Erneuert die IP auf dem Webspace. // // Dieser Aufruf vom Browser aus: // http://www.deineDomain.de/Unterverzeichnis/index.php?pw=Passwort&mip=127.0.0.1> // Erneuert die IP auf dem Webspace und schreibt 127.0.0.1 hinein. // // Dieser Aufruf: // http://www.deineDomain.de/Unterverzeichnis/index.php // startet einen http//:deineIP (also standard Port 80) // // Dieser Aufruf: // http://www.deineDomain.de/Unterverzeichnis/index.php?protocol=ftp&port=21 // startet einen Aufruf mittels FTP//:deineIP:21 (bei Mozilla geht das Problemlos) // // Dieser Aufruf: // http://www.deineDomain.de/Unterverzeichnis/index.php?protocol=vnc&port=5600 // startet einen Aufruf mittels VNC//:deineIP:5600 // // Dieser Aufruf: // http://www.deineDomain.de/Unterverzeichnis/index.php?protocol=http&port=777&pfad=LustigerPfad // startet einen Aufruf mittels http//:deineIP:777/LustigerPfad // // Dieser Aufruf: // http://www.deineDomain.de/Unterverzeichnis/index.php?suche // Öffnet ein Suchformular für die IP Suche im eigenen Archiv // // Dieser Aufruf: // http://www.deineDomain.de/Unterverzeichnis/index.php?suche=127.0.0.1 // Durchsucht das eigene IP Archiv nach der IP 127.0.0.1 // // Durch die verschiedenen Parameter sollte die Konfiguration ein Kinderspiel für jeden sein. // // Ab hier nichts ändern, es sei denn man traut sich 8-) // Eigentlich sind keinerlei Sicherheitsabfragen oder ähnliches eingebaut. $Passwort = $_GET['pw']; // liest ein evtl Ÿbergebendes Passwort aus $Port = $_GET['port']; // liest ein evtl Ÿbergebenden Port ein $Port=$Port+0; // Es wird eine 0 zum Port addiert, das macht die Variable ganz sicher Numerisch $Protocol = $_GET['protocol']; // liest ein evtl Ÿbergebenden Protokoll ein $Pfad = $_GET['pfad']; // liest ein evtl Ÿbergebenden Pfad ein $FritzIP = $_GET['mip']; // Ÿbermittelt die IP von der Firtzbox an die Variable FritzIP $domain=$_SERVER['SERVER_NAME']; // ermittelt den aktuellen Domainnamen $suche=$_GET['suche']; // Suchwort für die Vorratsdatenspeicherung if(isset($_POST['Submit'])){ $suche=$_POST[search]; } // Variablen anpassen date_default_timezone_set('Europe/Berlin'); setlocale(LC_TIME, "de_DE"); if ($Protocol=="") {$Protocol="http";} // Falls kein Protokoll angegeben wurde wird http verwendet. if ($Port==0) {$Port="";} // Wurde kein Port angegeben dann nutze auch keinen. if ($Port>=1) {$Port=":".$Port;} // Gibt es einen Port gr?§er als 1 dann fŸge einen : hinzu if ($Pfad!=="") {$Pfad="/".$Pfad;} // Gibt es ein Pfadangabe, dann stelle ein "/" voran. if ($suche!==NULL) { // Suchwort angegeben ? Wenn nicht dann ein kleines Formular einblenden if ($suche=="") { echo '
'; exit; } //Prüfen ob die IP aus 3 Punkten und Zahlen besteht $ipcheck=substr_count($suche,"."); if ($ipcheck!==3) {echo "Fehler bei der IP Eingabe - Die Zahlen müssen durch Punkte getrennt sein"; exit;} $iproh=str_replace(".","",$suche); if (is_numeric($iproh)==FALSE) {echo "Fehler bei der IP Eingabe - Es sind nur Zahlen erlaubt"; exit;} // Ordnerinhalt (Dateinamen) in eine Variable einlesen $handle=opendir($VorratsdatenspeicherungsOrdner); $ipfilesAlle=""; while ( $ipfiles = readdir ($handle)) { if ($ipfiles != "." && $ipfiles != ".." && $ipfiles != ".DS_Store" && ! is_dir($ipfiles)) { $ipfilesAlle=$ipfilesAlle."|".$ipfiles; } } closedir($handle); $ipfilesAlle=substr($ipfilesAlle,1);$zaehler=0;$treffer=0; $aufloesung = explode("|", $ipfilesAlle); $AnzahlEintraege=count($aufloesung)-1; // in Array umwandeln echo "Gesucht wurde folgende IP: ".$suche.""; echo "
Im Ordner: ".$VorratsdatenspeicherungsOrdner."
"; //Die Dateien einladen und nach der IP suchen. do { $inhalt = file_get_contents($VorratsdatenspeicherungsOrdner."/".$aufloesung[$zaehler]); $position=strpos($inhalt, $suche); $laengesuchwort=strlen($suche); if ($position!==FALSE) { // Eintrag gefunden ? // Alles etwas Lesbarer gestalten... $auschnitt=substr($inhalt,$position-23,$position+$laengesuchwort); // Eintrag inkl Datum und Uhrzeit freilegen $jahr=substr($auschnitt,0,4); $monat=substr($auschnitt,5,2); $tag=substr($auschnitt,8,2); $uhrzeit=substr($auschnitt,11,8); $treffer=1; echo "
Die IP: ".$suche." wurde am ".$tag.".".$monat.".".$jahr." um ".$uhrzeit." Uhr von der Fritzbox im Logfile gespeichert
Der Eintrag befindet sich in der Datei ".$aufloesung[$zaehler]."

"; } $zaehler= $zaehler+1; } while ($zaehler<=$AnzahlEintraege); if ($treffer==0) {echo "
Es wurden keine Einträge zu der IP :".$suche." gefunden.";} exit;} // IP Datei erzeugen wenn sie nicht existiert if (!file_exists($IP_Datei)) { // Existiert die Datei nicht ? $datei = fopen("$IP_Datei", "w+"); // Lege eine Datei mit dem Namen an fwrite($datei, "127.0.0.1"); // Als Dummy schreibe die IP 127.0.0.1 hinein. fclose($datei); // Schlie§e die Datei } // Passwort ŸberprŸfen, IP Datei erneuern. if($Passwort==$PASSWORT) { // Ist das passwort Korrekt, dann erneuere die IP $datei = fopen("$IP_Datei", "w"); // …ffnen der IP Datei zum Schreiben fwrite($datei, $FritzIP); // schreibt die Ÿbergebene IP in die Datei fclose($datei); // Schliesst die Datei fŸr den Schreibzugriff echo "good ".$domain; // gibt "good Domainname" aus. // Ab hier kommt die VorratsDatenspeicherung if ($Vorratsdatenspeicherung=="JA") { // Sollen die IPs dauerhaft gespeichert werden ? $jahr=date("Y");$monat=date("m"); // Jahreszahl und Monatszahl ermitteln // und zu Filenamen zusammensetzen: $Filename=$VorratsdatenspeicherungsOrdner."/".$jahr."-".$monat."-".$IParchivname.".txt"; // Eintrag zusammenstellen: yyyy-mm-tt hh:mm:ss IP:ipadresse $datum=date("Y-m-d H:i:s",time()); $inhalt=$datum." IP:".$FritzIP."\n"; // existiert der Ordner fŸr das IP Archiv noch nicht, dann erzeuge es: if (!file_exists($VorratsdatenspeicherungsOrdner)) { mkdir($VorratsdatenspeicherungsOrdner, 0777, true); } // …ffne aktuelle Monatsdatei und h?nge aktuelle IP an, wenn noch keine Datei existiert // wird eine neue angelegt // Inhalt in die Variable $Alterinhalt einlesen if (file_exists($Filename)) {$Alterinhalt = file_get_contents($Filename); $umdrehen=strrev($Alterinhalt); $Position= strpos($umdrehen, ":PI"); $AlteIP= substr($umdrehen, 1, $Position-1); $AlteIP=strrev($AlteIP); } if ($AlteIP!==$FritzIP) { // ist die IP nicht identisch mit der Alten , dann... $datei = fopen("$Filename", "a"); // …ffnen der IP Datei zum Schreiben fwrite($datei, $inhalt); // schreibt Datum, Uhrzeit und IP in die Datei fclose($datei); // Schliesst die Datei } } exit; // Beende das Script } // Bei allen anderen Aufrufen entsprechend umleiten if (file_exists($IP_Datei)) { // Wenn das Passwort nicht korrekt oder gar // gar nicht Ÿbermittelt wurde, dann... $datei= fopen("$IP_Datei", "r"); // …ffne die Datei nur zum Lesen $inhalt = fread($datei,filesize($IP_Datei)); // Inhalt in die Variable $inhalt einlesen fclose($datei); // Schlie§e die Datei wieder. $url=$Protocol."://".$inhalt."".$Port."".$Pfad; // die Url wird zusammen gesetzt header("Location: $url"); // Ruft die Url passend auf exit; // beendet das Script } ?>