Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

FTP Uploadskript mit PHP

Empfohlene Antworten

Hi,

da ich zu Hause nur DSL habe und trotzdem meine Domains fit halten will, hab ich durch nen Tipp von nem Kollegen ein kleines Skript gebastelt.

Das Skript schreibt die aktuelle IP in ein unsichtbares Frameset einer HTML Datei. Die HTML Datei (index.html ;)) wird dann per FTP auf den Server geschoben. So spare ich mir den ganzen DynDNS ****. Sorry :-).

Leider bin ich jetzt auf ein Problem gestoßen.

Strato verweigert IP's in Framesets und bei 1und1 hab ich kein Webspace für die Skripts hochzuladen.

Ich habe mir auch schon überlegt von der alten strato domain zu 1und1 zu wechseln.

Wie siehts eigentlich aus wenn ich die IP Adresse als ASCII Zeichen angebe? Setzt der das im Frameset richtig um? Könnte ich die IP Adresse nicht mit Javaskript verschlüsseln?

Vielleicht weiß auch jemand wie die Prüfung von Strato funktioniert...

Gruß

debitux

Vielleicht kanns jemand gebrauchen, ist aber noch nicht fertig:


#PHP Code

<?php


$server_ip = gethostbyname($SERVER_NAME);

$filename = "index.html";

$dz = fopen($filename,"r+");

$contents = fread ($dz, filesize ($filename));

$fertig = str_replace('serverip',$server_ip,$contents);

rewind( $dz );

fwrite ($dz,$fertig);

fclose($dz);


$ftp_server = "";

$ftp_user_name = "";

$ftp_user_pass = "denkste :-PPP";

$destination_file = "index.html";

$source_file = "index.html";


$conn_id = ftp_connect("$ftp_server");

if (!$conn_id)

{

        echo "Keine FTP Verbindung!\n";

        die;

}

else

{

        echo "Verbunden mit $ftp_server\n";

}


$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");


if (!$login_result)

{

echo "Login fehlgeschlagen...! ($login_result)\n";

echo "Server: $ftp_server\n Benutzer: $ftp_user_name\n";

die;

}

else

{

echo "Eingeloggt in $ftp_server, mit dem Benutzer: $ftp_user_name\n";

}


$pwd = ftp_pwd($conn_id);

echo "Aktuelles Verzeichnis $pwd\n";

$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY);


if (!$upload)

{

        echo "Ftp upload war fehlerhaft!";

}

else

{

        echo "Datei $source_file auf $ftp_server als $destination_file geschrieben\n";

}

ftp_quit($conn_id);


?>


#index.html...

<HTML><HEAD>

<META NAME="description" content="">

<META NAME="keywords" content="">

<TITLE>Meine private Homepage</TITLE>


</HEAD>

<FRAMESET ROWS="100%,*" BORDER="0" FRAMEBORDER="0">

<FRAME SRC="http://serverip/" SCROLLING="AUTO" NAME="bannerframe" NORESIZE>

</FRAMESET>

<NOFRAMES>

Meine private Homepage

<P>

<DIV ALIGN="CENTER"><A HREF="http://serverpage/</A></DIV>

</NOFRAMES>

</HTML>

Gruß

debitux

So jetzt klappts...

Ich hatte den Fehler gemacht die Seite über die Strato Domain aufzurufen... Deswegen wurde Stratos eigene IP in das Framset geschrieben und ich bekam (was eigentlich auch verständlich ist) eine Fehlermeldung bei der Domain...

Naja egal jetzt funktionierts...

Die IP FUnktion ist noch nicht so doll. Aber vielleicht kann es jemand brauchen, oder vielleicht hat jemand einen Verbesserungsvorschlag... Bin ja kein Programmierer :-)


<?php


function localserver()

{

 exec('ifconfig',$catch);

 foreach($catch as $line){

        if(eregi('addr',$line))

        {

                if(eregi('P-t-P',$line))

                {

                list($t,$ip) = split(':',$line);

                $ip = trim($ip, "P-t-P");

                $ip = ereg_replace(" +", " ", $ip);

                return $ip;

                }

        }

 }

}


$server_ip = localserver();

$filename = "index.html";

$dz = fopen($filename,"r+");

exec('cp index.html index.html.save');

$contents = fread ($dz, filesize ($filename));

$fertig = str_replace('serverip',$server_ip,$contents);

rewind( $dz );

fwrite ($dz,$fertig);

fclose($dz);

exec('mv index.html.save index.html');


$ftp_server = "";

$ftp_user_name = "";

$ftp_user_pass = "";

$destination_file = "index.html";

$source_file = "index.html";


$conn_id = ftp_connect("$ftp_server");

if (!$conn_id)

{

        echo "Keine FTP Verbindung!\n";

        die;

}

else

{

        echo "Verbunden mit $ftp_server\n";

}


$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");


if (!$login_result)

{

echo "Login fehlgeschlagen...! ($login_result)\n";

echo "Server: $ftp_server\n Benutzer: $ftp_user_name\n";

die;

}

else

{

echo "Eingeloggt in $ftp_server, mit dem Benutzer: $ftp_user_name\n";

}


$pwd = ftp_pwd($conn_id);

echo "Aktuelles Verzeichnis $pwd\n";

$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY);


if (!$upload)

{

        echo "Ftp upload war fehlerhaft!";

}

else

{

        echo "Datei $source_file auf $ftp_server als $destination_file geschrieben\n";

}

ftp_quit($conn_id);

?>

Damit das Skript funzt, muss man nur eine index.html ins selbe Verzeichnis legen, die ftp Daten angeben usw.... In der index.html muss an der Stelle wo die IP stehen soll, einfach nur "serverip" stehen... thats all...

Gruß + N8

debitux

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.