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 |