This is an old page saved for posterity. It is no longer updated.

 

Auto Login mit MS-DOS

Zugegeben: Ein bisschen lästig ist die manuelle Einwahl zu DSL-on-Air schon. Da hilft nur ein Auto-Login.

Wer mit Linux arbeitet wird fündig bei Ulf Leichsenring:
Infos unter: LUG Stormarn

Hier jetzt ein Auto-Login für Windows / DOS.

Das Script arbeitet auf Basis der "alten" MSDOS Befehlsstruktur, die von Microsoft - aus Gründen der Kompatibilität - bis hin zu WIN XP implementiert ist. Damit dürfte das Script unter allen Windows Versionen lauffähig sein.

Download als ZIP-Datei: DonALin
(rechte Maustaste - Ziel speichern unter...) (5.586 Bytes)

Wer nicht gerne fremde Dateien auf seinem Rechner hat, der kann sich mit cut'n paste helfen. Im folgenden der Scriptcode:

Scriptcode:

! ACHTUNG: Umbrüche "/\" entfernen !


@echo off

rem Batchdatei ~~ D(sl)ON A(ir) L(og)IN ~~ "donalin.cmd"
rem
rem ~~~~~~~~ Datum: 20.12.2005 Version: 0.1 ~~~~~~~~~
rem
rem ~~~~~~~~~~ Datum: Version: ~~~~~~~~~~~
rem
rem ~~~~~~~~~~ Datum: Version: ~~~~~~~~~~~
rem
rem Autor: Karl M. Weckler (http://www.rockenberg.net/)
rem
rem
rem Das Script ist Frei. Die Nutzung erfolgt auf eigene Gefahr!
rem
rem ~~~~~~~ Der Autor übernimmt KEINE Haftung! ~~~~~~~~
rem
rem Feedback, Kritik und Verbesserungsvorschläge bitte an:
rem
rem ~~~~~~~~~~ mail(at)rockenberg(dot)net ~~~~~~~~~~~

rem ----[Kurzbeschreibung]-------------------------------------------------
rem
rem Dieses Batchprogramm (DOS-Skript) prüft zunächst den Status der WLan-
rem Verbindung zu DSLonAir.
rem
rem Im Online Status erfolgt keine weitere Aktion.
rem Im Offline Status führt das Programm einen Login zu DSLonAir aus.
rem
rem Die Anmeldung per HTTPS an den Host DBD.DSLONAIR.DE erfolgt erst
rem nach Prüfung der Verbindung und der URL.
rem
rem Das Programm sollte mit dem Task-Manager regelmäßig aufgerufen werden.
rem (z.B. alle 3 bis 5 Minuten). Hierzu erstellen Sie eine Verknüpfung zu
rem donalin.cmd und stellen in deren Eigenschaften die Option "Ausführen"
rem auf "minimiert." Diese Verknüpfung dann im Task-Manager mit den ent-
rem sprechenden Einstellungen ausführen lassen.
rem
rem Die Idee zu diesem Skript wurde initiiert durch das Linux-Skript
rem "DSL-Login" von Ulf Leichsenring (http://www.lug-stormarn.de/dsl.php).
rem ähnlichkeiten sind rein zufällig :-)).

rem ----[Erforderliche Dateien / Programme]--------------------------------
rem
rem Benötigt wird das Tool "cURL für Windows32 SSL".
rem Download über: (http://curl.haxx.se/)
rem Die Datei "cURL.EXE" und das zugehörige Zertifikat "curl-ca-bundle.crt"
rem werden in das Windows Verzeichnis kopiert.
rem (oder hilfsweise in ein anderes unter "Path" angegebenes Verzeichnis)
rem
rem Benötigt wird auch "Win32OpenSSL" (http://www.openssl.org/)
rem Bitte entsprechend installieren.
rem
rem Weiter wird benötigt Die Datei (DON_UES_INI).
rem Näheres hierzu unter [Prozessablauf].

rem ----[Prozessablauf]----------------------------------------------------
rem
rem Was das Script 'sonst noch so' macht?
rem
rem Da wir hier mit "dem guten, alten" MSDOS arbeiten und uns ausser den
rem Umgebungsvariablen (Environment Variable) nichts geboten wird, müssen
rem während des Prozessablaufes ein 'paar' Hilfsdateien erzeugt werden.
rem Dazu wird zunächst ein Unterverzeichnis "Donalin" im Standard-Windows-
rem Verzeichnis "Gemeinsame Dokumente" (%allusersprofile%\dokumente\)
rem angelegt. In diesem Verzeichnis finden sich während des Prozesses alle
rem Hilfsdateien. Dort findet sich auch das Logfile "donalin.log" in dem
rem HTTP-Codes, Datum und Zeit, evtl. Fehler, Logins, Hinweise etc.
rem dokumentiert werden.
rem
rem Nach Beendigung des Prozesses werden alle Hilfsdateien - bis auf die
rem (DON_UES_INI) - und alle Umgebungsvariablen gelöscht, so dass ein sauberes
rem System zurück bleibt.
rem
rem Wie oben bereits gesagt, wird die Hilfsdatei (DON_UES_INI) benötigt.
rem Sie hat den Inhalt: "--URL =" (WICHTIG: OHNE "" und OHNE CR/LF).
rem Diese Datei muss im Standardverzeichnis: "Gemeinsame Dokumente\Donalin"
rem liegen, sie darf nicht gelöscht oder verändert werden,
rem denn: OHNE diese Datei geht NIX!
rem
rem Wenn Sie die beiden Dateien (DonALin.cmd und DON_UES_INI) gedownloadet
rem haben, installiert DonALin.cmd die DON_UES_INI beim ersten Aufruf im
rem Donalin-Standardverzeichnis, so dass Sie weiter nichts zu unternehmen
rem brauchen. Wenn Sie DonALin.cmd per cut'n paste selbst erstellt haben,
rem müssen Sie auch die DON_UES_INI entsprechend erstellen, denn wie gesagt:
rem OHNE DON_UES_INI geht NIX!

:TOP
rem ----[00.Konfigurationsparameter]---------------------------------------
rem
rem Sie können die vorgegebene Test-URL (DON_TST_URL) benutzen. Der Autor
rem kann aber die Verfügbarkeit nicht garantieren, weder heute noch in Zukunft.
rem
rem Sie können auch sonst jede Internet-Seite verwenden (eigen oder fremd).
rem Es werden keine geheimen (Name/Passwort) Daten an diese URL gesendet!
rem Die (DON_TST_URL) wird benötigt, um den HTTP-Statuscode zu liefern.
rem Deshalb sollte diese Seite möglichst klein (leer) sein, um nicht das
rem DSL Volumen schon durch die regelmäßigen Online-Requests über Gebühr
rem zu beanspruchen ;-).
rem
rem Der Login-Host (DON_HOST) ist voreingestellt auf HTTPS://DBD.DSLONAIR.DE
rem und sollte -ohne Not- nicht verändert werden.
rem
rem Bei (DON_USR) und (DON_PWD) geben Sie Ihre DSL-Zugangsdaten ein:
rem Bei (DON_USR) Ihren Namen "UserID" z.B.: DBDxyzzyx
rem Bei (DON_PWD) Ihr Passwort
rem
rem Mit Log-Online (DON_LOL) können Sie festlegen, ob die regelmäßige Prüfung
rem des Online-Status ins Logfile geschrieben wird. Diese Funktion ist, wie
rem der Name LOL schon verrät, eher ein Gimmick. Mit DON_LOL=1 wird gelogt.
rem Das Loggen von Fehlern, Login etc. ist von dieser Einstellung unabhängig
rem und kann (standardmässig) nicht deaktiviert werden.

rem ----[Hier die individuellen Parameter eintragen:]-----------------------

set DON_TST_URL=http://www.rockenberg.net/donalin/nix.htm
set DON_HOST=https://dbd.dslonair.de/

set DON_USR=Hier Ihren Namen/User eingeben
set DON_PWD=Hier Ihr Passwort eingeben

set DON_LOL=

rem ----[Ende Konfigurationsparameter]--------------------------------------


rem ********************************************************
rem ---- Ab hier nur noch ändern, wenn Sie wissen, was Sie tun! ------------
rem ********************************************************

rem !Achtung! Im Debug Modus (DON_DBG=1) kann das Programm nicht arbeiten!
rem Deshalb nur zum Testen in den Debug Modus wechseln.
set DON_DBG=
if "%DON_DBG%"=="1" (set #=echo) else (set #=rem)
if "%DON_DBG%"=="1" (set ##=rem) else (set ##= )

%#% ----[01.Verzeichnis und Logfile anlegen]--------------------------------
rem Verzeichnis "Donalin" anlegen im Windows-Standard-Verzeichnis
rem "Gemeinsame Dokumente" und Logfile "donalin.log" generieren.
rem Kopieren von DON_UES_INI.

set DON_DIR=%allusersprofile%\dokumente\Donalin\
if not exist "%DON_DIR%" md "%DON_DIR%"
if not exist "%DON_DIR%DON_UES_INI" goto UES_INI
cd /d %DON_DIR%
set DON_LOG=%DON_DIR%donalin.log
if exist "%DON_LOG%" goto ONTEST
echo Logfile: Einwahlen zu DSLonAir über Donalin.cmd> "%DON_LOG%"
echo -------------------------------------------------------------------->> "%DON_LOG%"
echo Erstellt: %date% %time% >> "%DON_LOG%"
echo -------------------------------------------------------------------->> "%DON_LOG%"
echo ---------^|----------^|-----------^|----------------------------------->> "%DON_LOG%"
echo HTTP-Code^|Datum ^|Zeit ^|Login-Host / * Hinweis / # Fehler >> "%DON_LOG%"
echo ---------^|----------^|-----------^|----------------------------------->> "%DON_LOG%"

:ONTEST
%#% ----[02.Online Test]----------------------------------------------------
rem Testen, ob eine http-Verbindung zum Internet (zur DON_TST_URL) möglich ist.
rem Der HTTP-Statuscode wird abgefragt und in (DON_HC1) gespeichert.
rem Die geläufigen Codes werden ausgewertet.
rem Die Optionen von cURL finden sich in der man page.

curl -s -o /dev/null -w %%{http_code} %DON_TST_URL% > "%DON_DIR%DON_HC1"
find "200" "%DON_DIR%DON_HC1" > nul
if %errorlevel% == 0 goto ONLINE
find "302" "%DON_DIR%DON_HC1" > nul
if %errorlevel% == 0 goto HOLURL
find "000" "%DON_DIR%DON_HC1" > nul
if %errorlevel% == 0 goto NOLINE
find "404" "%DON_DIR%DON_HC1" > nul
if %errorlevel% == 0 goto NOFIND
type "%DON_DIR%DON_HC1" >> "%DON_LOG%"
echo ^|%date%^|%time%^|# Onlinetest abgebrochen >> "%DON_LOG%"
goto AUFWASCH

:HOLURL
%#% ----[03.Cookie und effektive URL holen]---------------------------------
rem Die effective URL (DON_UEF) der Loginseite ermitteln (wir hängen an
rem einem Redirekt!) und Cookie speichern.
rem (DON_UEF) in sendefähige URL (DON_UES) umwandeln.

curl -s -o /dev/null -L -c DON_COC -w "%%{url_effective}" %DON_TST_URL% > "%DON_DIR%DON_UEF"
copy "%DON_DIR%DON_UES_INI"+"%DON_DIR%DON_UEF" "%DON_DIR%DON_UES" >nul

%#% ----[04.HTTPS-Verbindung und Host prüfen]-------------------------------
rem Wir vergleichen unsere vorgegebene Hostadresse (DON_HOST) mit der vom
rem Redirekt übertragenen Hostadresse (DON_UES); bei übereinstimmung erfolgt
rem Anmeldung, bei Abweichung erfolgt keine Anmeldung.

find "%DON_HOST%" "%DON_DIR%DON_UES" >nul
if %errorlevel% == 0 goto HOSTOK
goto HOSTNOK

:HOSTOK
%#% ----[05.Host O.K. - Anmeldung durchführen und loggen]-------------------
rem Die vorgegebene Hostadresse (DON_HOST) entspricht der vom Redirekt
rem übertragenen Adresse (DON_UES). Die Anmeldung erfolgt.
rem Loginparameter (User/Password) werden per HTTPS POST zusammen mit dem
rem gespeicherten Cookie an die übertragene URL (DON_UES) gesendet.
rem Speichern des HTTP-CODE in (DON_HC2) und loggen.

curl -s -o /dev/null -b DON_COC -w %%{http_code} -d "__ac_name=%DON_USR%" -d "__ac_password=%DON_PWD%" -K "%DON_DIR%DON_UES" > "%DON_DIR%DON_HC2"
find "200" "%DON_DIR%DON_HC2" >nul
if %errorlevel% EQU 0 echo 200 ^|%date%^|%time%^|%DON_HOST% >> "%DON_LOG%"
if %errorlevel% GTR 0 goto NOLOGIN
goto AUFWASCH

:HOSTNOK
%#% ----[06.Host N.O.K. - keine Anmeldung]----------------------------------
rem Die vorgegebene Hostadresse (DON_HOST) entspricht nicht der vom Redirekt
rem übertragenen Adresse. Deshalb erfolgt aus Sicherheitsgründen keine Anmeldung.

echo ~~~~~~~~~^|~~~~~~~~~~^|~~~~~~~~~~~^|/\
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>> "%DON_LOG%"
echo 302 ^|%date%^|%time%^|# Falsche Login-Adresse: >> "%DON_LOG%"
type "%DON_DIR%DON_UEF" >> "%DON_LOG%"
echo .>> "%DON_LOG%"
echo Aus Sicherheitsgründen erfolgte keine Anmeldung! >> "%DON_LOG%"
echo ~~~~~~~~~^|~~~~~~~~~~^|~~~~~~~~~~~^|/\
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>> "%DON_LOG%"
goto AUFWASCH

:ONLINE
%#% ----[07.Onlinestatus protokollieren]------------------------------------
rem Die Prüfung ergab: Wir sind online.
rem Ein entsprechender Eintrag ins Logfile erfolgt nur, sofern im Abschnitt
rem [00.Konfigurationsparameter] die Variable (DON_LOL) auf "1" ohne ""
rem gesetzt wurde.

if not "%DON_LOL%" =="1" goto Aufwasch
type "%DON_DIR%DON_HC1" >> "%DON_LOG%"
echo ^|%date%^|%time%^|* Onlinetest erfolgreich >> "%DON_LOG%"
goto AUFWASCH

:NOLINE
%#% ----[08.Onlineprüfung protokollieren HTTP-Code: 000]--------------------
rem Die Prüfung ergab: Keine Verbindung zum Internet

type "%DON_DIR%DON_HC1" >> "%DON_LOG%"
echo ^|%date%^|%time%^|# Keine Verbindung zum Internet >> "%DON_LOG%"
goto AUFWASCH

:NOFIND
%#% ----[09.Onlineprüfung protokollieren HTTP-Code: 404]--------------------
rem Die Prüfung ergab: Test-URL nicht gefunden

type "%DON_DIR%DON_HC1" >> "%DON_LOG%"
echo ^|%date%^|%time%^|# Die Test-URL nicht gefunden >> "%DON_LOG%"
goto AUFWASCH

:NOLOGIN
%#% ----[10.Loginfehler]----------------------------------------------------
rem Die Prüfung ergab: Loginfehler

type "%DON_DIR%DON_HC2" >> "%DON_LOG%"
echo ^|%date%^|%time%^|# Loginfehler >> "%DON_LOG%"
goto AUFWASCH

:UES_INI
%#% ----[11.Kopieren der DON_UES_INI]---------------------------------------
rem Die DON_UES_INI wird aus dem Installationsverzeichnis installiert,
rem falls nicht vorhanden, wird ein Fehlertext ausgegeben.

if not exist DON_UES_INI goto NO_INI
copy DON_UES_INI "%DON_DIR%DON_UES_INI"
goto TOP

:NO_INI
cls
echo.
echo # Fehler: Die Hilfsdatei "DON_UES_INI" fehlt.
echo.
echo Abhilfe 1: Datei von www.rockenberg.net/donalin downloaden
echo oder
echo Abhilfe 2: Erstellen Sie die Datei mit einem Editor selbst
echo Inhalt der Datei: "--url = " (ohne "" und ohne CR/LF)
echo.
echo.
echo Ohne diese Datei ist Donalin.cmd nicht lauffähig!
pause
if exist DON_UES_INI goto TOP
goto AUFWASCH

:AUFWASCH
%#% ----[11.Der Letzte macht den Aufwasch]----------------------------------
%##% if exist "%DON_DIR%DON_HC1" del "%DON_DIR%DON_HC1"
%##% if exist "%DON_DIR%DON_HC2" del "%DON_DIR%DON_HC2"
%##% if exist "%DON_DIR%DON_UEF" del "%DON_DIR%DON_UEF"
%##% if exist "%DON_DIR%DON_UES" del "%DON_DIR%DON_UES"
%##% if exist DON_COC del DON_COC
%##% set DON_TST_URL=
%##% set DON_HOST=
%##% set DON_USR=
%##% set DON_PWD=
%##% set DON_LOG=
%##% set DON_LOL=
%##% set DON_DBG=
%##% set DON_DIR=
%##% set DON_INT=
%##% set ##=
%##% set #=
cd /d %windir%

:ENDE
rem ----[12.Ende Skript]----------------------------------------------------

DSLonAIR

Mit steigender Tendenz bieten ISPs den Internetzugang als Ethernetlösung mit DHCP an.
Im vorliegenden Fall ein WLAN-Provider (DSL-on-Air, Deutsche Breitband Dienste GmbH - der Name ist so luftig wie trügerisch, es wird kein DSL, also PPP.. angeboten sondern reines, unverpacktes TCP/IP -), der die Anbindung ans schnelle Internet (i.d.R. in Ermangelung einer DSL-Versorgung durch die Telekom) auch "auf dem Lande" ermöglicht. Aber auch in der Stadt macht das Konzept Sinn, denn WLAN-Internet ist mitunter schneller als das ADSL von T und Konsorten; außerdem ist man an ein Kabel nicht gebunden, also flexibel.
Dazu stellt der ISP einige Hot Spots (APs), die man entweder direkt mit einer WLAN-Karte, einem externen WLAN-Adapter über z.B. USB, oder über eine externe WLAN-EthernetLAN-Bridge anzapfen kann.
Der in der Regel schon vorhandenen ISDN Zugang kann auch weiterhin für andere Dienste genutzt werden (T-Mail, Banking über Classic-Gate, etc.), so man hat zudem noch einen Reserve-Zugang ins WWW.