View difference between Paste ID: 49k5A30e and dXJVjiMJ
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