Verbesserung des Skripts zur automatischen IP-Ermittlung

Vor einiger Zeit habe ich einen Artikel über die Verwendung eines beliebigen DynDNS-Dienstes hinter einem Router, der selber keine Möglichkeit bietet diesen Dienst zu nutzen, geschrieben.

Bei meinem ursprünglichen Skript war es nötig das Linux-Tool wget unter Windows zu verwenden und auf ein eigenes PHP-Skript, das einen eigenen Webspace voraussetzt, zu nutzen. Bei diesem Skript hingegen wird mittels Visual Basic Script die Aufgabe von wget übernommen und die Ausgabe der Webseite http://checkip.dyndns.com/ geladen. Da diese Seite nicht nur die IP-Adresse, sondern auch anderen Quellcode ausgibt, muss dieser noch gefiltert und zurecht gestutzt werden.

Das vorliegende Batch-Skript generiert eine VBS-Datei im Temp-Ordner, welche dann mittels des Befehls csript mit Übergabe der aufzurufenden URL gestartet wird.

Quelle für den Code:
https://www.administrator.de/forum/oeffentlich-ip-adresse-privaten-netz-raus-finden-90533.html

In das bisher genutzte Skript, das die ermittelte IP-Adresse im Account bei SPDYN aktualisiert, habe ich das ganze wie folgt eingebaut:

Es gab leider noch ein kleines Problem bei der Erstellung der URL für das SPDYN-Update. Das &-Zeichen wird in VBScript anscheinend für Keyboard-Shortcuts verwendet und falsch interpretiert. Ein Escapen durch ein weiteres & hat leider nicht funktioniert, zumindest nicht für den ersten Parameter in der URL. Deshalb habe ich den String in der Batch-Datei deshalb statt mit den &-Zeichen mit $-Zeichen zusammengebaut, welche dann wiederum im VBScript-Code einfach wieder durch &-Zeichen ersetzt werden. Dafür sorgt der Befehl Replace(WScript.Arguments(0),“$“,“&“).

Soweit funktioniert das Skript nun ohne zusätzliche Tools und ohne eigene Domain. Wenn man allerdings trotzdem das eigene PHP-Skript verwenden möchte, so ist das mit folgender Anpassung möglich:

 

Schreibe einen Kommentar