Buchstabieren
dbox2
Drehzahlen
dyn DNS
Einheiten
E-Mail Notify
Griechisch
Lichtphysik
Morse ABC
offene Fragen
Plus49
Telefon Tech.
T-Online DFÜ
Tools
 
Infos und Anleitung für einen webserver@home trotz dynamischer IP


1.Wer kann das nutzen?
2.Wofür ist das gut?
3.Wozu muss man eine IP Nummer kennen?
4.Auf welcher Funktionsweise basiert die Skriptsammlung?
5.Ist das alles legal?
6.Nutzungsbedingungen für replace.exe
7.Wie viel Know-How brauche ich?
8."GNU Wget" wird auch noch gebraucht.
9.Was mache ich mit den Skripten?
10.Welche Anpassungen sind nötig?
11.Was ist die richtige Reihenfolge?
12.Funktioniert das Ganze auch?
13.Haftungsausschluss
14.Download
15.Fragen oder Anmerkungen?


1. Wer kann das nutzen?

Jeder der irgendwo, an unveränderlicher Adresse im Internet, etwas Speicherplatz hat, auf den er per ftp zugreifen kann um Dateien dort zu lagern. Das muss nicht eine eigene Domäne sein, es kann auch einfach nur Webspace sein. Man braucht zuhause natürlich auch einen Internet-Zugang. (Es bietet sich dabei ein Flatrate-Vertrag an.)
Weiterhin muss auf dem Rechner zuhause, ein Webserver oder irgendein anderer Dienst installiert sein, den man vom Internet aus nutzen möchte, ob geschützt für eigene Zwecke oder öffentlich ist dabei egal.
Es bietet sich besonders für Rechner an, die ohnehin Tag und Nacht laufen.
Meine Skriptsammlung erfordert einen Rechner unter Windows NT/2000/XP/Vista/7/8/8.1 oder Windows Server NT/2000/2003/2008/2012.
Getestet ist sie bisher nur unter Windows XP Pro und Windows 7 Pro.
Die zugehörige replace.exe erfordert .Net-Framework 3.5.
Die Skriptsammlung kommt ohne Installation aus, es reicht sie auf einen entsprechenden Rechner zu kopieren und auf den eigenen Bedarf anzupassen.
Bei Rechnern mit anderem Betriebssystem kann man diese Skripte zwar nicht direkt nutzen, aber die Grundidee, ist bei entsprechenden Systemkenntnissen, sicher leicht portierbar.
zurück nach oben


2. Wofür ist das gut?

Bei den meisten Internet-Tarifen erhält man keine feste IP, sondern eine dynamische. Das bedeutet, dass bei jedem Verbindungsaufbau sich die eigene IP-Adresse ändern kann. Man ist daher von außen nicht immer über dieselbe Adresse erreichbar. Die Skriptsammlung soll die aktuelle Adresse auslesen und zur Nutzung bereit stellen.
Die Skriptsammlung stellt eine Alternative zu externen Diensten wie z.B. DynDNS dar.
zurück nach oben


3. Wozu muss man eine IP Nummer kennen?

Für VPN-Verbindungen (virtual private network) auch "Tunnel durchs Internet" genannt, für Internet Telefonie, für Web- und Ftp-Server und Ähnliches. Bei fester IP kann man diese einem DNS-Server bekannt machen, so dass man auch einen registrierten Domänennamen verwenden kann, statt der IP. Ein Webserver ist aber auch über seine IP-Adresse erreichbar und nicht nur über seinen Namen, auch wenn letzteres einfacher zu merken ist. Einen DNS-Server hat man üblicherweise nicht zuhause, den bietet der ISP bei dem man seine Internet-Domäne liegen hat an. Dieser DNS-Server verwaltet aber nur feste IPs.
Diese Skriptsammlung soll die Aufgabe eines DNS-Servers ersetzen.
zurück nach oben


4. Auf welcher Funktionsweise basiert die Skriptsammlung?

Ein Skript (update-ip.cmd) läuft auf dem Rechner zuhause und liest die aktuell zugeordnete IP aus, schreibt diese in eine Datei und formt die Datei zu einem Java-Skript (script.js) um. Mit Hilfe der ftpscript.txt kopiert die update-ip.cmd die frisch erzeugte script.js per ftp ins Internet. Die script.js wird dort, von der schon einmalig hin kopierten Webseite (index.html), ausgelesen, um eine automatische Weiterleitung zum Webserver zuhause zu ermöglichen. Für Besucher mit Browsern ohne Java-Skript, erzeugt die update-ip.cmd zusätzlich eine ip.txt, die auch ins Internet kopiert wird. Als ergänzende Information, wird das Datum und die Uhrzeit mit in die Dateien geschrieben und veröffentlicht. Der gesamte Vorgang dauert wenige Sekunden, und sollte regelmäßig wiederholt werden, damit die Informationen aktuell bleiben.
Ist ein Rechner per Router mit dem Internet verbunden, so ist die Internet-IP (Wan-IP) dem Rechner nicht bekannt, sondern dem Router.
Um die Internet-IP zu ermitteln greift die update-ip.cmd auf ein öffentlich zugängliches Serverskript oder auf das Webinterface des Routers zu.
Folgende Serverskripte sind in der update-ip.cmd vorkonfiguriert:

- http://www.pedant.de/scripte/ipinfo.php
- http://checkip.dyndns.org
- http://www.wieistmeineip.de

Diese Skripte zeigen die aktuelle IP dessen an, der das Skript aufruft. Die Anzeige erfolgt in einer Webseite an und diese wird dann von update-ip.cmd mit dem Tool "GNU Wget" lokal gespeichert wird. Dadurch ist auf dem eigenen Rechner die Information über die aktuelle IP vorhanden.
Bei der Variante, die IP aus dem eigenen Router auszulesen, wird die Statusseite des Routers aufgerufen und lokal gespeichert.
Die Stausseite des Routers sieht bei jedem Router-Modell anders aus und ist auch über einen anderen Link auszurufen. Das kann zusätzlich auch noch je nach Firmwareversion variieren.
In der update-ip.cmd ist ein Router mit "DD-WRT v24-sp2 (06/14/11) std" vorkonfiguriert.
Mit etwas Know-How kann man die update-ip.cmd auch leicht für andere Serverskripte oder andere Router konfigurieren. Ich bin dabei aber auch gerne behilflich.
zurück nach oben


5. Ist das alles legal?

Man darf über seinen Provider eine Verbindung zum Internet herstellen. Man bekommt dabei eine IP-Adresse "geliehen". Diese IP-Adresse darf man normalerweise jedem bekannt geben für Internet-Telefonie, IP-Kamera, VPN und diversem Anderem.
Jeder darf einen Webserver betreiben.
Jeder darf auf seinen Webspace eigene Dateien kopieren und veröffentlichen, mit den üblichen Einschränkungen (Pornografie, Volksverhetzung, Datenschutz ...). Ich sehe daher keinen Grund warum etwas an dieser Methode nicht legal sein sollte.
Kleingedrucktes im Vertrag mit dem jeweiligen ISP könnte vielleicht dagegen sprechen. Ich vermute aber, dass dem nicht so ist, da viele ähnliche Dienste kostenfrei oder gegen Gebühr angeboten werden.
Bei der Nutzung externer Serverskripte wie z.B. die von "dyndns" oder "wieistmeineip", kann es sein, dass den jeweiligen Anbietern die Nutzung mit meiner Skriptsammlung nicht recht oder vielleicht sogar untersagt ist.
Für die Nutzung des Serverskriptes von pedant.de oder das Auslesen des eigenen Routers existiert keine Nutzungsbeschränkung.
Für etwaige Rechts- oder Vertragsverletzungen, die durch die Nutzung meiner Skripte entstehen, übernehme ich keinerlei Verantwortung.
Ein Copyright auf meine Skriptsammlung erhebe ich nicht.
zurück nach oben


6. Nutzungsbedingungen für replace.exe

Der Skriptsammlung liegt eine replace.exe bei.
Dieses Programm habe ich für die Skriptsammlung geschrieben. Es basiert auf .Net-Framework 3.5.
Es darf privat und gewerblich genutzt werden.
Ich möchte aber explizit darauf hinweisen, dass es weder elegant noch universell programmiert und für keinen anderen Zweck getestet ist.
Ich rate daher dringend davon ab, es auf unikate Dateien anzuwenden, ebenso wird es vermutlich mit binären Dateien und mit großen Dateien Schwierigkeiten haben. Da es auch eine Vielzahl an Datei-Codierungen, Zeichensätzen und Sonderzeichen gibt, sehe ich da auch eine Vielzahl an Fehlfunktionspotential.
Falls replace.exe also in einem anderen Umfeld verwendet werden soll, so ist unbedingt in einer gesicherten Umgebung zu testen, ob es zu den gewünschten Ergebnissen führt.
Ich gebe übrigens keinerlei Gewährleistung auf replace.exe und lehne jegliche Haftung für jegliche Schäden ab, die es verursachen könnte.
Ich verspreche nur, dass ich es in guter Absicht für die Skriptsammlung geschrieben habe.
zurück nach oben


7. Wie viel Know-How brauche ich?

Die Mindestvoraussetzung ist, zu wissen wie man Dateien im Editor öffnet und bearbeitet und wie man in einer Eingabeaufforderung Befehle eingibt.
Alles andere ist in diesem Text beschrieben oder kann per Mailanfrage von mir noch erklärt werden.
Um die Skripte weitergehend zu personalisieren oder einfach zu verstehen wie sie arbeiten, sind Kenntnisse in folgenden Bereichen hilfreich:

- Kommandozeilen-Befehle
- Batchdatei-Programmierung
- JavaScript-Programmierung
- HTML-Design
- Ftp-Befehle

Da die Skripte im wesentlichen für Leute gedacht sind, die zuhause einen Web- oder Ftp-Server betreiben möchten, haben sie das nötige Wissen wahrscheinlich ohnehin,
aber wie gesagt, per Mail stehe ich für alle Fragen zur Verfügung.
zurück nach oben


8. "GNU Wget" wird auch noch gebraucht.

"GNU Wget" ist eine kleines, geniales, installationsfreies Freeware-Tool (Dank an die Autoren)
Infos zu "GNU Wget":
http://www.gnu.org/software/wget/wget.html
Downloadseite:
http://sourceforge.net/projects/gnuwin32/files/wget/1.11.4-1/

Benötigt werden zwei Pakete und zwar wget-1.11.4-1-bin.zip (850,4 kB) und wget-1.11.4-1-dep.zip (1,4 MB).
Aus diesen Zips müssen fünf Dateien in das Skriptverzeichnis kopiert werden.

- wget.exe (zu finden in "bin"-Ordner von wget-1.11.4-1-bin.zip)
- libeay32.dll (zu finden in "bin"-Ordner von wget-1.11.4-1-dep.zip)
- libiconv2.dll (zu finden in "bin"-Ordner von wget-1.11.4-1-dep.zip)
- libintl3.dll (zu finden in "bin"-Ordner von wget-1.11.4-1-dep.zip)
- libssl32.dll (zu finden in "bin"-Ordner von wget-1.11.4-1-dep.zip)

zurück nach oben


9. Was mache ich mit den Skripten?

Einige der Dateien müssen individuell angepasst werden, wobei aber einige wenige Veränderungen schon ausreichend sein sollten.
Folgende Dateien gehören auf den Rechner zuhause in ein beliebiges Verzeichnis:

- update-ip.cmd
- replace.exe
- ftpscript.txt
- wget.exe
- libeay32.dll
- libiconv2.dll
- libintl3.dll
- libssl32.dll

Folgende Dateien gehören ins Internet in ein beliebiges Verzeichnis, vorzugsweise ins Webroot, damit sie die bisherige Homepage ersetzen:

- index.html
- skript.js
- skript1.js
- ip.txt

Sie sollten aber zusätzlich, zu Testzwecken, auf dem lokalen Rechner liegen.

update-ip.cmd sollte, am besten automatisch (als geplanter Task), regelmäßig ausgeführt werden. Je öfter mit einer Änderung der IP zu rechnen ist, je kürzer sollte das Ausführungsintervall eingestellt werden.
zurück nach oben


10. Welche Anpassungen sind nötig?

Folgende Dateien können unverändert benutzt werden:

- replace.exe
- index.html
- skript.js
- skript1.js
- ip.txt
- wget.exe
- libeay32.dll
- libiconv2.dll
- libintl3.dll
- libssl32.dll
Wobei script.js und ip.txt durch update-ip.cmd immer aufs Neue generiert werden.

Geändert werden müssen folgende Dateien:

ftpscript.txt
update-ip.cmd

Bei ftpscript.txt müssen die ersten 3 Zeilen verändert werden

In Zeile 1 bei "open example.com" ist der Name Deiner Domäne z.B. www.example.com anstelle von «example.com» einzutragen.
In Zeile 2 bei "Benutzername" ist «Benutzername» zu ersetzen mit Deinem Benutzernamen für den ftp-Zugang zu Deiner Domäne.
In Zeile 3 bei "Kennwort" ist «Kennwort» zu ersetzen mit Deinem Kennwort für den ftp-Zugang zu Deiner Domäne.
Falls Du die Dateien nicht in Dein Webroot kopieren lassen möchtest kann in Zeile 4 noch der Eintrag "cd /" für entsprechende Verzeichniswechsel verändert werden. Es kann auch sein, dass FTP-Root und Web-Root nicht derselbe Ordner ist und schon daher ein Verzeichniswechsel zweckmäßig sein könnte.
Zu Fragen zum FTP-Zugang zu Deiner Domäne, kannst Du Deinen Provider befragen.
(Anmerkung: Die Datei enthält dann die Ftp-Zugangsinformationen zu Deiner Domäne im Klartext. Sei also entsprechend sorgfältig, damit sie nicht in anderer Leute Hände gerät.)

In update-ip.cmd sind anzupassende Stellen mit "REM ***" entsprechend kommentiert.

Die Dateien index.html und update-ip.cmd können nach Belieben umbenannt werden, bei allen anderen Dateien müssten dann auch alle entsprechenden Verweise auf sie, innerhalb der Skripte, geändert werden. Auch eine Änderung der Groß/Klein-Schreibung ist relevant.

Wenn die update-ip.cmd auf das Auslesen eines anderen Routers konfiguriert werden soll, so muss einerseits die URL zur Statusseite des Routers angepasst werden und andererseits die Auswertung und Umformung der resultierenden download.tmp.
Zur Auswertung und Umformung der Datei download.tmp bedient sich die update-ip.cmd des find.exe des Systems und der replace.exe der Skriptsammlung.
Die Datei download.tmp enthält in der Regel Zeilenumbrüche im Unix-Format. Das ist für find und replace nicht relevant, im Editor von Windows (Notepad) werden aber diese Art Zeilenumbrüche ignoriert.
Um die korrekten Zeilenumbrüche sehen zu können, empfehle ich eine Kopie von download.tmp in einem unixkonformen Editor zu öffnen oder die Kopie in download.txt umzubenennen und sie dann in einen geöffneten Browser zu schubsen.
zurück nach oben


11. Was ist die richtige Reihenfolge?

Zuerst solltest Du sämtliche zugehörigen Dateien in ein lokales Verzeichnis kopieren, auf das kein unbefugter Zugriff hat. Sie enthalten nach der Anpassung persönliche Daten.
Danach ist die Datei update-ip.cmd zu modifizieren und zu testen.
Sie sollte solange getestet werden, bis sie inhaltlich fehlerfrei die Dateien script.js und ip.txt erzeugt.
Fehlermeldungen die dadurch verursacht werden, dass die Datei ftpscript.txt noch nicht angepasst ist, kannst Du zunächst ignorieren.
Während der Testphase musst Du online sein, damit auch eine dynamische IP zum Auslesen vorhanden ist.
Wenn Du die update-ip.cmd testweise ausführst, sollte anschließend die Datei script.js folgendem Beispiel formal entsprechen:

var ip1=5; var ip2=147; var ip3=87; var ip4=52
var tag=29; var mon=06; var jahr=2014
var std=16; var min=34

Desgleichen sollte die Datei ip.txt dieser Form entsprechen:

http://173.194.113.56

Wenn Du soweit bist, dann kannst Du die lokale Kopie von index.html einem Probelauf unterziehen (Doppelklick). Wenn dieser erfolgreich verläuft, was er auf Anhieb auch sollte, bist Du fast fertig.
Jetzt kannst Du die Dateien index.html und skript1.js ins Internet auf Deinen Webspace übertragen und zwar an die Stelle, an die script.js und ip.txt auch übertragen werden.
Zum Schluss solltest Du dafür sorgen, dass update-ip.cmd, in angemessenem Intervall, automatisch gestartet wird.
Dafür bietet sich der Dienst "Aufgabenplanung" an.
Einen Tipp noch: Falls Dich das regelmäßige Ausführen von update-ip.cmd, durch sein "Aufpoppen" nervt, kannst Du es auch unter einem anderen Benutzernamen ausführen lassen, dann läuft es quasi unsichtbar ab.
Der andere Benutzter muss dabei ausreichende Rechte zum Ausführen haben.
zurück nach oben


12. Funktioniert das Ganze auch?

Das ist keine "OutOfTheBox"-Lösung (auspacken und losspielen).
Ich habe diese Skripte bisher nur auf dem Rechner getestet, auf dem ich sie auch geschrieben habe.
Das ist ein PC mit ehemals Windows XP Pro und zur Zeit Windows 7 Pro.
Ich bin mir ziemlich sicher, dass sie auch auf anderen Rechnern bei entsprechender Anpassung mit Windows NT/2000/Vista/7/8/8.1 oder Windows Server NT/2000/2003/2008/2012 funktionieren werden.
Der "Knackpunkt" ist wahrscheinlich die update-ip.cmd, die sollte hinreichend getestet werden. Sie ist nach meiner Meinung so geschrieben, dass sie keine bedenklichen Auswirkungen verursacht.
zurück nach oben


13. Haftungsausschluss:

Ich habe diese Skriptsammlung für meinen persönlichen Bedarf geschrieben. Wenn Du diese Skripte verwendest erfolgt das unter Ausschluss jeglicher Haftung meinerseits.
Die Skripte sind potentiell in der Lage Deine Rechnerinstallation und Deine Daten zu verändern, zu löschen, unbrauchbar zu machen oder Dritten zugänglich zu machen. Ich denke, dass ich die Skripte in dieser Hinsicht unbedenklich angelegt habe, ich übernehme aber für Nichts Gewähr.
Ich biete die Nutzung unentgeltlich an, sie soll mich entsprechend auch nichts kosten.
Siehe auch 5. Ist das alles legal?.
Zu Risiken und Nebenwirkungen fragen Sie ihren Rechtsanwalt oder Administrator.
zurück nach oben


14. Download:?

Hier ist die Skriptsammlung zu finden: webserver@home (Version 2.0)
und "GNU Wget" nicht vergessen. (Punkt 8.)
zurück nach oben


15. Fragen oder Anmerkungen?

Für Erfahrungsaustausch, Verbesserungsvorschläge, Schreibfehlerhinweise und Sonstiges, wäre ich dankbar.
Für Fragen wie die Skripte aufgebaut sind, wie sie arbeiten oder wie man sie im Detail anzupassen hat, stehe ich gerne zur Verfügung.
Bitte per E-Mail an mich.
zurück nach oben