Hallo an alle!
Ich bin leider eher ein Programmier-Novize, ... vielleicht könnt Ihr mir hier weiter helfen!
Danke im Voraus für Eure Hilfe!
Ich habe folgende Herausforderung: ich habe eine BATCH-Datei bzw. Teile einer Batch, die ich gerne in AutoIt3 gelöst haben möchte:
1. Den Zahlenwert aus einer Datei. "Zahl.txt" auslesen. Falls diese Datei nicht vorhanden ist, soll sie angelegt werden mit dem Wert 10!
2. Den Zahlenwert um 1 erhöhen und in Zahl.txt zurück schreiben (alter Zahlenwert soll überschrieben werden!). Falls der Zahlenwert >60 ist, soll der Wert wieder auf 10 gesetzt werden.
BATCH- Teile:
---------------------- code Anfang ----------------------------
hier passiert was ....
rem - Schritt 1 (Zaehlschleife): Wert aus "Zahl.txt" aus lesen (Wichtig: für 6-Stelle Mac-Adresse)
if not exist "zahl.txt" set /a zahl=10
for /f %%i in (Zahl.txt) do set /a zahl=%%i
hier passiert wieder was ....
rem - Schritt2: Zahl.txt um Wert 1 erhöhen!!! 6te-Zweistellige Mac-Adresse von 10-60 hex !!!
rem ----------- Die IP-Adresse wird per DHCP vom KABEL-Provider zugewiesen. LEASE-Time pro IP ~24h
rem ----------- Bitte geht nicht inflationär mit dem Zähler um! 50x neue IP reicht!!!
set /a zahl=zahl+1
if %zahl%==61 set /a zahl=10
echo %zahl% > Zahl.txt
hier passiert wieder was ....
-----------------------code ende -------------------------------
Hier noch die gesamte Batch Datei sowie weitere Infos über Sinn und Zweck des ganzen:
Spoiler anzeigen
Quelle: [Kabel Internet] MAC WAN IP Wechsel / Change - Software Reset Bsp ReConnect.bat
Mit meinem neuen Router D-Link DGL 4100 funktioniert die wget und curl
Methode leider nicht. Da das Passwort beim Bowser-Login per MD5
verschlüsselt wird. Bei jedem Login verändert sich dieser String:
GET /post_login.cgi?data=Yf6IyzVtpp1jbaAwUXBMZvGsi3r.
Das Auslesen dieses Strings und Weiterverarbeitung macht also keinen Sinn!!!
Daher suche/ bastle ich nach eine Lösung mit AutoIt3 per Browser-Interface.
@echo off & SETLOCAL
rem - ReConnect.bat
rem - Kabel Modem (WebSTAR EPX (DPX, DPC, EPC) 2203 (Scientific Atlanta)) RESTART + Router (D-Link 624+) NEUSTART
rem - Kabelmodem als 1. booten und gleichzeitig Router durch neue MAC-Adresse versorgen und booten.
rem - Durch die Änderung der MAC-Adresse bezieht der Router eine neue WAN-IP-Adresse über das Kabel-Modem.
rem - =========================== Have Phun - PC-Fun & Moses =====================================================
rem Pro Tag eine eigene Datum_IP-History.txt
FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set cDate=%%d-%%c-%%b
rem - WAN-IP ermitteln
WGET.EXE -O "%Temp%.\index.html" http://checkip.dyndns.org/index.html >NUL 2>&1
FOR /F "tokens=8 delims=<>" %%A IN ('TYPE "%Temp%.\index.html" ^| FIND /I "Current IP Address:"') DO FOR %%B IN (%%A) DO SET WAN_IP=%%B
DEL "%Temp%.\index.html"
rem - Warmstart Kabel Modem WebSTAR EPX (DPX, DPC, EPC) 2203
curl -d "CmStartDownstreamFrequency=1" http://192.168.100.1/goform/gscan
rem - ^^^^^^hier kann ein alternatives Kabel-Modem eingesetzt werden ^^^^^^^^
rem - Schritt 1 (Zaehlschleife): Wert aus "Zahl.txt" aus lesen (Wichtig: für 6-Stelle Mac-Adresse)
if not exist "zahl.txt" set /a zahl=10
for /f %%i in (Zahl.txt) do set /a zahl=%%i
rem - %Zahl%MAC-Übergabe an (D-Link 624+) Router und Restart
rem - !!! Bei mac1= bis mac5= die eigenen 2-stelligen Adressen anstelle der XX eingetragen !!!
wget --user=admin --password= --post-data="connType=0&host=DI-624%2B&mac1=XX&mac2=XX&mac3=XX&mac4=XX&mac5=XX&mac6=%zahl%&dns1=0.0.0.0&dns2=0.0.0.0&mtu=1500" http://192.168.1.1/h_wan_dhcp.cgi --delete-after
rem - ^^^^^^hier kann ein alternativer Router eingesetzt werden ^^^^^^^^
rem - Schritt2: Zahl.txt um Wert 1 erhöhen!!! 6te-Zweistellige Mac-Adresse von 10-60 hex !!!
rem ----------- Die IP-Adresse wird per DHCP vom KABEL-Provider zugewiesen. LEASE-Time pro IP ~24h
rem ----------- Bitte geht nicht inflationär mit dem Zähler um! 50x neue IP reicht!!!
set /a zahl=zahl+1
if %zahl%==61 set /a zahl=10
echo %zahl% > Zahl.txt
@Echo "======= WARTEN: Online-Verbindung wird geprüft! ======================"
@echo on
rem - Internetverbindung prüfen bis Verbindung steht!
:IPcheck
ping www.google.de -n 2 | find "TTL=" >nul
if not errorlevel 1 goto ende
goto IPcheck
:ende
rem - Neue WAN-IP ermitteln!
WGET.EXE -O "%Temp%.\index.html" http://checkip.dyndns.org/index.html >NUL 2>&1
FOR /F "tokens=8 delims=<>" %%A IN ('TYPE "%Temp%.\index.html" ^| FIND /I "Current IP Address:"') DO FOR %%B IN (%%A) DO SET WAN_IP_NEW=%%B
DEL "%Temp%.\index.html"
if not exist "Log". md "Log"
rem Log-Datei erstellen
@echo %date% um %time% ALT *** %WAN_IP% - NEU *** %WAN_IP_NEW%>> LOG/%cdate%_IP-History.txt
ENDLOCAL
Alles anzeigen
Ich habe keine Idee wie man das realisieren könnte. Weiß hier jemand Rat und könnte mir helfen!
Ich wäre für jede Lösung dankbar.
Viele Grüße
Satchmo