Speicher- bzw. Auslesepfad in PHP-Skript implentieren
Geizhals » Forum » Programmierung » Speicher- bzw. Auslesepfad in PHP-Skript implentieren (28 Beiträge, 128 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
Speicher- bzw. Auslesepfad in PHP-Skript implentieren
12.09.2007, 14:12:45
Nachdem ich unter http://forum.geizhals.at/t520770.html  schon mein Problem gepostet und eigentlich eine Lösung gefunden habe, möchte ich das Skript noch ein wenig adaptieren.

Doch mit meinen spärlichen Kenntnissen, schaff' ich es nicht: das PHP-Skript macht eigentlich nichts anderes, als dass es die vom Router gesendete Public IP in eine TXT speichert und dann so im Netz abzulesen ist (im Prinzip ein eigenes DynDNS-Skript).

Das Problem ist allerdings, dass der Code die TXT immer im selben Verzeichnis wie die PHP ablegt. Weil ich allerdings die PHP an anderer Stelle aufrufen möchte, soll der Speicher- bzw. Auslesepfad festgelegt werden unter dem die TXT erreichbar ist.

Komm' da nicht dahinter, was bei meinem rudimentären Fähigkeiten in diesem Bereich kein Wunder ist:

Der Code ist folgender:


<?php
/*	
	Version vom 12.07.2006 by Karl Loncarek
	Ermitteln der IP-Adresse und abspeichern in IPinfo.txt
	Die IP-Adresse wird als Parameter vom Router übergeben: 
		Beispiel: .....IPinfo.php?myip=192.168.1.1
	wird keine IP-Adresse angegeben, wird die des Browsers ermittelt
		Beispiel: .....IPinfo.php?myip=
	wird der Parameter "ftp" angegeben, wird direkt zum entsprechenden
	ftp-Server umgeleitet (geeigent für eine direkte Umleitung)
		Beispiel: .....IPinfo.php?ftp
	wird der Parameter "web" angegeben, wird direkt zum entsprechenden
	Webserver umgeleitet (geeigent für eine direkte Umleitung)
		Beispiel: .....IPinfo.php?web
	Obige Umleitungen kann man auch mit entsprechenden "Redirect" in der
	.htaccess automatisieren.
*/
	$datei = "IPinfo.txt"; //Dateiname als Speicherort für die IP-Adresse

	# Verhindern, dass Seite aus Cache geladen wird
	header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum in der Vergangenheit

	if (isset($_GET['myip']))  //wurde parameter ?myip=... übergeben?
	{
		$ipadress = $_GET['myip']; //IP-Adresse aus parameter übernehmen
		if ($ipadress == "") $ipadress = $_SERVER['REMOTE_ADDR']; //falls keine IP übergeben wurde, die INternet-IP ermitteln
		if ($fp = fopen($datei, "w")) //Information abspeichern
		{
			fwrite($fp,strftime('Stand: %d.%m.%Y, %H:%M Uhr',time())."\n");
			fwrite($fp,"IP-Adresse:  ".$ipadress);
			fclose($fp);
		};
		print "good ".$ipadress;
	}
	else
	{
		if (file_exists($datei)) //existiert die Datei?
		{
			$fp = fopen($datei, "r"); //Inhalt der Datei einlesen
			$inhalt = fread ($fp, filesize($datei));
			$ip = trim(substr($inhalt,strrpos($inhalt,':')+1));
			fclose($fp);
			if(isset($_GET['ftp'])) //Parameter ?ftp wurde übergeben
			{
				header("Location: ftp://$ip"); //direkt zur FTP-Adresse umleiten
			}
			elseif(isset($_GET['web'])) //Parameter ?web wurde übergeben
			{
				header("Location: http://$ip"); //direkt zur FTP-Adresse umleiten
			}
			else
			{
				print "<html>\n<head>\n<title>Externe IP-Adresse des DSL-Zugangs zuhause</title>\n</head>\n<body>\n"; //HTML-Kopf
				print "<pre>\n".$inhalt."\n\n"; //Inhalt der Datei ausgeben
				print "Webserver:  <a href='http://".$ip."''>http://".$ip."</a>\n"; //Direktlink Webserver
				print "FTP-Server: <a href='ftp://".$ip."'>ftp://".$ip."</a>\n"; //Direktlink FTP-Server
				//Hier weitere Direktlinks eintragen
				print "</pre>\n</body>\n</html>";
			}
		}
		else
			print "bad";
	};
?>


Entwickler ist bereits angeschrieben worden, meldete sich aber nicht.

Ist das ein triviales oder bereits schwierigeres Problem?
Für mich als Laien nicht nachvollziehbar und ich wäre für konkrete Hinweise bzw. Lösungen sehr dankbar. ;-)


BAT.SQUAD Gaming Community

BF:2142 Popular Maps 32 Slots Ranked: 84.244.186.137:16567
TS: 87.117.226.5:8790

12.09.2007, 14:14 Uhr - Editiert von Paradoxon, alte Version: hier
Antworten PM Übersicht Chronologisch
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung