SHOW:
|
|
- or go back to the newest paste.
| 1 | :getHHLToken &::[adres IP]:zwraca zmienne %_Token% oraz %_SID% z Huawei HiLink do wykorzystania z curl lub wget, przyjmując opcjonalnie adres IP modemu | |
| 2 | setlocal | |
| 3 | rem przypisanie zmiennej HHL adresu modemu | |
| 4 | SET HHL=hi.link | |
| 5 | rem przyjmij pierwszy parametr jako adres IP modemu lecz pierw zweryfikuj | |
| 6 | if "%~1" neq "" if /i "%~1" neq "%HHL%" echo. %~1 |findstr /r /c:"^ *[0-9]*[0-9]\.[0-9]*[0-9]\.[0-9]*[0-9]\.[0-9]*[0-9] *$" >nul &&set HHL=%~1 | |
| 7 | rem inicjalizacja niepustych zmiennych | |
| 8 | set "_SID= " | |
| 9 | set "_Token= " | |
| 10 | rem wyczyść zmienną z adresem ze spacji | |
| 11 | set HHL=%HHL: =% | |
| 12 | set _c=curl -q -s -X GET --stderr nul --max-time 5 | |
| 13 | rem pobranie tokena oraz ID sesji i przypisanie wartości | |
| 14 | for /f "tokens=1-4 delims=<>" %%a in ('%_c% http://%HHL%/api/webserver/SesTokInfo ^|find /i "Info>"') do (
| |
| 15 | rem if /i "%%~c"=="/SesInfo" - sprawdza czy zmienna nie przekroczyła linii | |
| 16 | if /i "%%~a"=="SesInfo" if /i "%%~c"=="/SesInfo" set _SID=--header "Cookie: %%b" | |
| 17 | if /i "%%~a"=="TokInfo" if /i "%%~c"=="/TokInfo" set _Token=--header "__RequestVerificationToken: %%b" | |
| 18 | rem jeżeli przed pierwszym znakiem < lub > coś występuje: | |
| 19 | if /i "%%~b"=="SesInfo" if /i "%%~d"=="/SesInfo" set _SID=--header "Cookie: %%c" | |
| 20 | if /i "%%~b"=="TokInfo" if /i "%%~d"=="/TokInfo" set _Token=--header "__RequestVerificationToken: %%c" | |
| 21 | ) | |
| 22 | ||
| 23 | rem jeśli nowy token nie istnieje uzyskaj stary: | |
| 24 | if "%_Token:~0,2%"==" " for /f "tokens=1-3 delims=<>" %%a in ('%_c% http://%HHL%/api/webserver/token ^|find /i "token"') do (
| |
| 25 | if /i "%%~a"=="token" set _Token=--header "__RequestVerificationToken: %%b" | |
| 26 | if /i "%%~b"=="token" set _Token=--header "__RequestVerificationToken: %%c" | |
| 27 | ) | |
| 28 | ||
| 29 | set _exit=0 | |
| 30 | if "%_SID:~0,2%"==" " set /a "_exit+=2" | |
| 31 | if "%_Token:~0,2%"==" " set /a "_exit+=1" | |
| 32 | endlocal &(set "_SID=%_SID%" )&(set "_Token=%_Token%" )& exit /b %_exit% | |
| 33 | goto :eof |