Hi. Ich möchte eine Serversoftware auf meinem Rechner auch von außerhalb ansprechen können, Beispielhaft einen Teamspeak-Server oder sonst was. Dazu sind Änderungen an den Einstellungen im Router nötig, das ist mir klar, aber um erstmal nur meine Internet-IP zu publizieren, brauche ich das noch nicht. Dennoch tut von meinem Script scheinbar gar nichts.
Die Funktionsweise ist einfach. Alle 30 Sekunden oder so überprüft das im Hintergrund laufende Tool, ob die Online-IP noch dieselbe ist wie vor 30 Sekunden. Ist das nicht der Fall, wird sie an ein php-Script per GET üübermittelt, welches diese geänderte IP in eine Textdatei speichert. Damit ich Statistiken zur Fehlerbetrachtung, zur Verfügbarkeit etc. habe und um heruaszubekommen, wie oft sich die IP ändert, speichere ich diese Daten in Log-Dateien. Haken: Nichtienmal das passiert. Ich weiß nicht, ab welcher Stelle mein Script nicht tut, Log-Dateien werden keine erstellt, weder serverseitig, noch clientseitig.
Hier die Quellcodes:
Spoiler anzeigen
#include <Inet.au3>
#include <IE.au3>
$PublicIP = _GetIP()
$oIE = _IECreate ( "www.meineseite.de/dynipservice.php?ip="&$PublicIP, 0, 0, 1, 0 )
_IEQuit ( $oIE )
$file = FileOpen(@YEAR&"\"&@MON&"\"&@MDAY&"\log.txt", 1)
FileWriteLine($file, @HOUR&":"&@MIN&":"&@SEC&" - IP-Adresse: "&$PublicIP)
FileClose($file)
While 1
Sleep(15000)
$newPublicIP = _GetIP()
If $newPublicIP <> $PublicIP Then
$PublicIP = $newPublicIP
$oIE = _IECreate ( "www.meineseite.de/dynipservice.php?ip="&$PublicIP, 0, 0, 1, 0 )
_IEQuit ( $oIE )
$file = FileOpen(@YEAR&"\"&@MON&"\"&@MDAY&"\log.txt", 1)
FileWriteLine($file, @HOUR&":"&@MIN&":"&@SEC&" - IP-Adresse hat sich geändert! Neue IP-Adresse in nächster Zeile.")
FileClose($file)
EndIf
$file = FileOpen(@YEAR&"\"&@MON&"\"&@MDAY&"\log.txt", 1)
FileWriteLine($file, @HOUR&":"&@MIN&":"&@SEC&" - IP-Adresse: "&$PublicIP)
FileClose($file)
WEnd
Und hier serverseitig die PHP-Datei, die einkommende Anfragen bearbeitet:
<?php
$CurrentIP=$_GET['ip']);
$handle = fOpen("log.txt", "a+");
fWrite($handle, date("d.m.Y,H:i:s")." - IP-Adresse: ".$CurrentIP."\n");
fClose($handle);
$handle = fOpen("ip.txt", "a+");
ftruncate($handle, 0);
fWrite($handle, $CurrentIP);
fClose($handle);
echo "Neue IP-Adresse $CurrentIP wurde gespeichert.";
?>
Alles anzeigen