HiLink API Huawei - Dyskusja

Kwestie techniczne, konfiguracja i rozwiązywanie problemów z modemami GSM (GPRS, EDGE, UMTS, HSDPA i HSUPA).

Moderator: Moderatorzy

dzejk
Guru bezprzewodowy
Posty: 7187
Rejestracja: 2014-10-17, 14:37
Lokalizacja: internet

Re: HiLink API Huawei - Dyskusja

Post autor: dzejk »

mój jeszcze działa https://www.dropbox.com/sh/mudhhzjoww4x ... O8Oqa?dl=0
lub tu https://onedrive.live.com/redir?resid=C ... =folder%2c
hippi
Stały użytkownik forum
Posty: 65
Rejestracja: 2008-12-07, 23:06
Lokalizacja: północ

Re: HiLink API Huawei - Dyskusja

Post autor: hippi »

Podziękował :)
Huawei 5g cpe pro 2 (H122-373), 2xATK 504 + Cybertech LTE-A/4G MIMO, T-mobile/Orenżada 1,7km, RB912UAG-2HPnD + LTE6 - robi za WiFi i DHCP
dzejk
Guru bezprzewodowy
Posty: 7187
Rejestracja: 2014-10-17, 14:37
Lokalizacja: internet

Re: HiLink API Huawei - Dyskusja

Post autor: dzejk »

a propos tokena, popatrz na pliki switcher.zip i Win7_Reboot_E3372.7z może coś rozjaśni.
https://www.mediafire.com/folder/ll9ieq ... /Documents
hippi
Stały użytkownik forum
Posty: 65
Rejestracja: 2008-12-07, 23:06
Lokalizacja: północ

Re: HiLink API Huawei - Dyskusja

Post autor: hippi »

Moje zdolności programistyczne, jak juz pisałem wcześniej, są bliskie 0. Działam na zasadzie małpy - co się stanie jak wpisze to czy tamto, oczywiście nie wklepuje wszystkiego na pałę.
Z tego co zauważyłem co sesja to inny token. Wpisując

Kod: Zaznacz cały

curl -X GET http://192.168.8.1/api/webserver/SesTokInfo
za każdym razem dostaje inny token.
I pytanie: jak zmienić firmware na niższy. Obecnie mam wgrany 22.315.01.00.00_M_AT a potrzebowałbym 22.286.53.01.161...
Jak próbuje go wrzucić na obecny soft dostaję informację, że to nie FIRMWARE ... Może inny plik potrzebny - modem oryginalnie nie był HiLinkiem. Przerobiony został przy pomocy tutoriala i z softem przejściowym...
Huawei 5g cpe pro 2 (H122-373), 2xATK 504 + Cybertech LTE-A/4G MIMO, T-mobile/Orenżada 1,7km, RB912UAG-2HPnD + LTE6 - robi za WiFi i DHCP
dzejk
Guru bezprzewodowy
Posty: 7187
Rejestracja: 2014-10-17, 14:37
Lokalizacja: internet

Re: HiLink API Huawei - Dyskusja

Post autor: dzejk »

Token można też tak wydobyć tak:

Kod: Zaznacz cały

curl -X GET http://192.168.8.1/api/webserver/token
Nie pomogę zbytnio, bo nie zgłębiałem tematu, a chęci i czasu też za bardzo nie mam.
Co do firmware, to jesteś pewny, że wgrywasz do odpowiedniego modemu ? Ten od wersji S nie pasuje do H i odwrotnie.
hippi
Stały użytkownik forum
Posty: 65
Rejestracja: 2008-12-07, 23:06
Lokalizacja: północ

Re: HiLink API Huawei - Dyskusja

Post autor: hippi »

Przy obecnym sofcie (22.315...) przy wpisaniu tego co podałeś wywala błąd 125002...
Huawei 5g cpe pro 2 (H122-373), 2xATK 504 + Cybertech LTE-A/4G MIMO, T-mobile/Orenżada 1,7km, RB912UAG-2HPnD + LTE6 - robi za WiFi i DHCP
dzejk
Guru bezprzewodowy
Posty: 7187
Rejestracja: 2014-10-17, 14:37
Lokalizacja: internet

Re: HiLink API Huawei - Dyskusja

Post autor: dzejk »

pewnie zależy od softu
hippi
Stały użytkownik forum
Posty: 65
Rejestracja: 2008-12-07, 23:06
Lokalizacja: północ

Re: HiLink API Huawei - Dyskusja

Post autor: hippi »

Owszem zgadza się. Obecnie wgrany mam 22.315.01.00.00_M_AT a opis VipeRsan-a tyczy sie E3372Update_22.286.53.01.161_S_ADB_TLN_01.rar, którego na notabene nie mogę wgrać...
Huawei 5g cpe pro 2 (H122-373), 2xATK 504 + Cybertech LTE-A/4G MIMO, T-mobile/Orenżada 1,7km, RB912UAG-2HPnD + LTE6 - robi za WiFi i DHCP
dzejk
Guru bezprzewodowy
Posty: 7187
Rejestracja: 2014-10-17, 14:37
Lokalizacja: internet

Re: HiLink API Huawei - Dyskusja

Post autor: dzejk »

bo masz e3372h, a chcesz wgrać soft od e3372s.
hippi
Stały użytkownik forum
Posty: 65
Rejestracja: 2008-12-07, 23:06
Lokalizacja: północ

Re: HiLink API Huawei - Dyskusja

Post autor: hippi »

Pogubiłem się już z tymi softami...
Udało się w tej kolejności: na firmware 22.315.01.00.00_M_AT poszedł soft przejściowy > E3372hUpdate_22.200.03.00.1134_M_ADB_TLN_02 > Update_WEBUI_17.100.06.00.03_V7R2_CPIO_Mod1.4 - może trochę na około ale zadziałało...
Zastanawiam się tylko czy mogę wgrac nowsze webui...
Huawei 5g cpe pro 2 (H122-373), 2xATK 504 + Cybertech LTE-A/4G MIMO, T-mobile/Orenżada 1,7km, RB912UAG-2HPnD + LTE6 - robi za WiFi i DHCP
dzejk
Guru bezprzewodowy
Posty: 7187
Rejestracja: 2014-10-17, 14:37
Lokalizacja: internet

Re: HiLink API Huawei - Dyskusja

Post autor: dzejk »

W teorii WebUI 17.100.11.00.03 jest dla firmware 22.200.09.* i 22.300.09.*
A najnowsze WebUI 17.100.13.01.03 działa z tymi, co wyżej oraz 22.200.15.* i najnowszym firmware 22.315.01.*.
Ale możesz próbować, a w razie czego wrócisz do poprzedniego. Pamiętaj, żeby po wgraniu przywrócić ustawienia fabryczne.
hippi
Stały użytkownik forum
Posty: 65
Rejestracja: 2008-12-07, 23:06
Lokalizacja: północ

Re: HiLink API Huawei - Dyskusja

Post autor: hippi »

Dzięki, będę próbował. Tak, pamiętam o przywróceniu ustawień.
Huawei 5g cpe pro 2 (H122-373), 2xATK 504 + Cybertech LTE-A/4G MIMO, T-mobile/Orenżada 1,7km, RB912UAG-2HPnD + LTE6 - robi za WiFi i DHCP
hippi
Stały użytkownik forum
Posty: 65
Rejestracja: 2008-12-07, 23:06
Lokalizacja: północ

Re: HiLink API Huawei - Dyskusja

Post autor: hippi »

dzejk aby wgrać soft E3372Update_22.286.53.01.161_S_ADB_TLN_02 jaki S/N musi mieć modem? Bo mam tylko G4P czyli jak dobrze zrozumiałem HiLink...
Huawei 5g cpe pro 2 (H122-373), 2xATK 504 + Cybertech LTE-A/4G MIMO, T-mobile/Orenżada 1,7km, RB912UAG-2HPnD + LTE6 - robi za WiFi i DHCP
dzejk
Guru bezprzewodowy
Posty: 7187
Rejestracja: 2014-10-17, 14:37
Lokalizacja: internet

Re: HiLink API Huawei - Dyskusja

Post autor: dzejk »

to jest soft do modelu e3372s, czyli początek s/n: L8F.
hippi
Stały użytkownik forum
Posty: 65
Rejestracja: 2008-12-07, 23:06
Lokalizacja: północ

Re: HiLink API Huawei - Dyskusja

Post autor: hippi »

Ok, odpowiedni modem dotarł do mnie (s/n: L8F) a w między czasie odezwał się VipeRsan i pomógł za co jestem mu bardzo wdzięczny.
A z modemem powalczę jak znajdę chwilę wolnego czasu ;)
Huawei 5g cpe pro 2 (H122-373), 2xATK 504 + Cybertech LTE-A/4G MIMO, T-mobile/Orenżada 1,7km, RB912UAG-2HPnD + LTE6 - robi za WiFi i DHCP
tosiek
Specjalista bezprzewodowy-junior
Posty: 292
Rejestracja: 2012-03-24, 14:00
Lokalizacja: inąd

Re: HiLink API Huawei - Dyskusja

Post autor: tosiek »

Na nowym firmware trzeba odświeżać token co każde zapytanie, nawet jeśli się nie zmieni.
(22.317.01.00.778
WEBUI: 17.100.13.01.03)

Zapytanie POST:
http://%modIPAdr%/api/ussd/send - należy zmienić na właściwy adres

Kod: Zaznacz cały

curl -X POST -d "ZAWARTOSC XMLa" http://%modIPAdr%/api/ussd/send %_SID% %_Token% -H "Content-Type: text/xml"
zapytanie GET:

Kod: Zaznacz cały

curl -X GET http://%modIPAdr%/api/ussd/get %_SID% %_Token%
Jak chcecie przkeirowac wyjście CURLa to trzeba dodac przełącznik -s np.:

Kod: Zaznacz cały

curl -X GET http://%modIPAdr%/api/ussd/status %_SID% %_Token% -s  | find "<result>0</result>" >nul
if errorlevel 1 (
echo nie znaleziono ciagu
) else (
echo znaleziono ciag
)

Samo pobieranie tokenu:
http://pastebin.com/49k5A30e
Źródło pobieranie tokenu: penknife @ http://forum.jdtech.pl/Watek-hilink-api ... 5#pid31735

Przykładowe wysłanie USSD (zakładam że macie tryb automatyczny lub 4g - umts):

Kod: Zaznacz cały

@echo off &:: HHL_token_test.bat
setlocal
set modIPAdr=192.168.8.1

call :getHHLToken %modIPAdr%
echo *****Stan konta*****
curl -X POST -d "<request><content>*101#</content><codeType></codeType><timeout>5</timeout></request>" http://%modIPAdr%/api/ussd/send %_SID% %_Token% -H "Content-Type: text/xml"  >nul
if "%~1"=="" echo.OK
call :usdchecker
curl -X GET http://%modIPAdr%/api/ussd/get %_SID% %_Token%
if "%~1"=="" echo.OK

endlocal
goto :eof

:usdchecker
setlocal EnableDelayedExpansion EnableExtensions
curl -X GET http://192.168.8.1/api/ussd/status %_SID% %_Token% -s  | find "<result>0</result>" >nul
if errorlevel 1 (
    ping -n 1 127.0.0.1 >nul
    goto usdchecker
)
endlocal
goto :eof

:getHHLToken &::[adres IP]:zwraca zmienne %_Token% oraz %_SID% z Huawei HiLink do wykorzystania z curl lub wget, przyjmując opcjonalnie adres IP modemu
setlocal
rem przypisanie zmiennej HHL adresu modemu
SET HHL=hi.link
rem przyjmij pierwszy parametr jako adres IP modemu lecz pierw zweryfikuj
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
rem inicjalizacja niepustych zmiennych
set "_SID= "
set "_Token= "
rem wyczyść zmienną z adresem ze spacji
set HHL=%HHL: =%
set _c=curl -q -s -X GET --stderr nul --max-time 5
rem pobranie tokena oraz ID sesji i przypisanie wartości
for /f "tokens=1-4 delims=<>" %%a in ('%_c% http://%HHL%/api/webserver/SesTokInfo ^|find /i "Info>"') do (
rem if /i "%%~c"=="/SesInfo" - sprawdza czy zmienna nie przekroczyła linii
if /i "%%~a"=="SesInfo" if /i "%%~c"=="/SesInfo" set _SID=--header "Cookie: %%b"
if /i "%%~a"=="TokInfo" if /i "%%~c"=="/TokInfo" set _Token=--header "__RequestVerificationToken: %%b"
rem jeżeli przed pierwszym znakiem < lub > coś występuje:
if /i "%%~b"=="SesInfo" if /i "%%~d"=="/SesInfo" set _SID=--header "Cookie: %%c"
if /i "%%~b"=="TokInfo" if /i "%%~d"=="/TokInfo" set _Token=--header "__RequestVerificationToken: %%c"
)

rem jeśli nowy token nie istnieje uzyskaj stary:
if "%_Token:~0,2%"==" " for /f "tokens=1-3 delims=<>" %%a in ('%_c% http://%HHL%/api/webserver/token ^|find /i "token"') do (
if /i "%%~a"=="token" set _Token=--header "__RequestVerificationToken: %%b"
if /i "%%~b"=="token" set _Token=--header "__RequestVerificationToken: %%c"
)

set _exit=0
if "%_SID:~0,2%"==" " set /a "_exit+=2"
if "%_Token:~0,2%"==" " set /a "_exit+=1"
endlocal &(set "_SID=%_SID%" )&(set "_Token=%_Token%" )& exit /b %_exit%
goto :eof
Gdzie :usdchecker sprawdza co sekundę czy modem dostał odpowiedź. Jeśli nie dostanie to chyba po 20 sekundach jest timeout, można ustawić w zapytaniu albo jest ingorowane.

W załączniku przykładowy skrypt dla Darmowy internet LTE w RedBullu. Przełącza na 4G->UMTS aby działało USSD. Sprawdza stan kona, pakietu MB oraz stan LTE i aktywuje, potem restartuje modem, czeka aż się wybudzi i wymusza tylko LTE. Sam restart modemu jeśli jest wpięty w router nic nie daje. Często bez restartu nie da się z powrotem włączyć tylko LTE.
kod: http://pastebin.com/TReTiFHa

Nie sprawdzam odpowiedzi modemu dla zmainy trybów 3g etc. Sprawdzam tylko czy curl nie wywalił błędu.

pinger sprawdza czy modem wstał.

Miłego skryptowania :)

PS skrypt popsuje wam ręczne wymuszanie częstotliwości jeśli robiliście.
brak podpisu, tak jakby
Awatar użytkownika
onken
** Moderator **
Posty: 6436
Rejestracja: 2014-06-07, 20:49
Lokalizacja: Kraków

Re: HiLink API Huawei - Dyskusja

Post autor: onken »

A mozna taki skrypt poprosić pod linuxa :) ??

Wypożyczę kartę no limit - Nielimitowany internet w T-Mobile lub Orange

Cena - 60 zł za m-c
Kontakt na PW
tosiek
Specjalista bezprzewodowy-junior
Posty: 292
Rejestracja: 2012-03-24, 14:00
Lokalizacja: inąd

Re: HiLink API Huawei - Dyskusja

Post autor: tosiek »

na linuxie curl ma praktycznie identyczna składnie
brak podpisu, tak jakby
beginnerpoland
Początkujący użytkownik forum
Posty: 3
Rejestracja: 2016-11-28, 12:32

Re: HiLink API Huawei - Dyskusja

Post autor: beginnerpoland »

Witam, odnosnie postów na temat uwalonego HUAWEI E3372s-153 mam kilka pytan poniewaz nie potrafie odnalezc jednoznacznego rozwiazania problemu.

Modem dzialal w trybie takim, iz po podlaczeniu do usb uruchamiala mi sie Playowska aplikacja itp, wszystko dzialalo normalnie ale zaczalem kombinowac podlaczajac go po usb do routera Asus Rtn10UB i predkosc ktora osiagalem to 9/1 mbps, po usb natomiast bezposrednio do pc 50/23 mbps w Playu LTE. Zaczalem więc modzić i chcialem sprobowac przerobic go w tryb Hilink (nie wiem czemu myslalem ze to cos da) Po zmianach i cudach wiankach na modemie mam teraz oprogramowanie 22.286.53.01.161 i raz udalo mi sie go wprowadzic tym switcherem.bat (tym executablem) w te tryby debug i project mode ale cos poszlo nie tak gdy chcialem wrocic z HILINK na normalny tryb. Modem byl widoczny pod adresem 192.168.8.1 a raz jako sterownik sieci NDIS w polaczeniach ( MOJ SYSTEM TO WINDOWS 7 64bit)
Natomiast teraz nie widzę go po usb, nie widzę go także w polaczeniach, brak pingu do 192.168.8.1 ani opcji wejscia przez webui na niego. Tak po prostu jest najwidoczniej zbrickowany. Czy jest opcja jakakolwiek aby przywrocic go do dashboardu playa i softa ktory mial wczesniej ?? bardzo mi na tym zalezy, probowalem wykonywac kroki opisywane w tutorialach ale przez to, że w polowie tutoriala jest przesiadka do nastepnego postu o wprowadzaniu w tryb DEBUG I PROJECT (przelaczanie skryptu) jest już kocioł i nie wiem ktore sterowniki powinny byc zainstalowane najpierw a ktore pozniej, oraz nawet kiedy modem ma byc wpiety pod usb a kiedy nie. Prosilbym o ewentualną pomoc jak doprowadzic do stanu takiego żebym chociaz widzial modem w tym switcherze albo zebym mial mozliwosc dostania sie chociaz przez web ui na niego. Modem uwalilem świadomie/nieświadomie i teraz bardzo chcialbym przywrocic go do poprzedniego stanu, i wypieprzyć ten hilink aby byl że tak powiem "jak fabryka w playu mi dała".

Prosze o pomoc, pozdrawiam !
tmks90
Stały użytkownik forum
Posty: 80
Rejestracja: 2017-11-08, 16:21

Re: HiLink API Huawei - Dyskusja

Post autor: tmks90 »

Witam. Bardzo prosze o pomoc. Posiadam modem E3372 z hilink. potrzebuje przerobić go żeby nie miał hilinka. Próbuje już tysiąca sposobów ale zawszez przy instalacji firmware wyskakuje błąd 10 przy wyszukiwaniu portu. Posiadam windows 10. Czy jest jakiś szybki sposób żeby to zrobić? Jeszcze raz bardzo prosze o pomoc bo już nie wiem co zrobić
tosiek
Specjalista bezprzewodowy-junior
Posty: 292
Rejestracja: 2012-03-24, 14:00
Lokalizacja: inąd

Re: HiLink API Huawei - Dyskusja

Post autor: tosiek »

tmks90 przełącz ręcznie w tryb debug lub project mode. Od hilinka usuń: Mobile broadband hl service
brak podpisu, tak jakby
Przmus
Stały użytkownik forum
Posty: 98
Rejestracja: 2012-06-02, 03:43
Lokalizacja: Polska

Re: HiLink API Huawei - Dyskusja

Post autor: Przmus »

Podzielę się z Wami moim sposobem na włączenie DMZ w Huawei B525, który mam od wczoraj.
Jest to router z T-mobile, więc brakuje masy ustawień, w tym DMZ. W związku z tym że jest on połączony Ethernetem do głównego, lepszego routera chciałem przekierować na niego cały ruch przychodzący.
Oczywiście dało się to zrobić ustawiając przekierowania portów ręcznie:

Kod: Zaznacz cały

Name 	WAN Port 	LAN IP Address 	LAN Port 	Protocol 	Status 	Options
Synology1	1-67	192.168.8.100	1-67	TCP/UDP	On	EditDelete
Synology2	69-513	192.168.8.100	69-513	TCP/UDP	On	EditDelete
Synology3	515-545	192.168.8.100	515-545	TCP/UDP	On	EditDelete
Synology4	547-1700	192.168.8.100	547-1700	TCP/UDP	On	EditDelete
Synology5	1702-9999	192.168.8.100	1702-9999	TCP/UDP	On	EditDelete
Synology6	10001-28089	192.168.8.100	10001-28089	TCP/UDP	On	EditDelete
Synology7	28091-49999	192.168.8.100	28091-49999	TCP/UDP	On	EditDelete
Synology8	50021-65535	192.168.8.100	50021-65535	TCP/UDP	On	EditDelete
Jednak dzisiaj, po znalezieniu tego tematu: viewtopic.php?t=42168
Zainteresowała mnie część o DMZ, adres: http://192.168.8.1/api/security/dmz
Po otworzeniu w przeglądarce wyświetlało się:

Kod: Zaznacz cały

100003
Ale to dlatego, że byłem niezalogowany. Po zalogowaniu wyglądało to tak:

Kod: Zaznacz cały

0192.168.8.100
Pierwsza cyfra to status tej opcji (wyłączona), a dalej adres IP (pewnie domyślnie ustawiony, ale taki właśnie otrzymuje router główny).

Bawiłem się chwilę żeby zmienić to korzystając z curla, ale w końcu poddałem się. Przyszedł mi na myśl pomysł aby zrobić to z poziomu przeglądarki, już po zalogowaniu. I tak udało mi się stworzyć skrypt dla rozszerzenia Tampermonkey: https://chrome.google.com/webstore/deta ... fkfo?hl=en
O następującej treści:

Kod: Zaznacz cały

// ==UserScript==
// @name         Przemek-Huawei-Post-Request
// @namespace    x
// @version      0.1
// @description  bla bla bla
// @author       Me
// @match        https://192.168.8.1/html/quicksetup.html
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // Your code here...
    if (confirm('Wykonać skrypt z zapytaniem do routera Huawei?')) {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "/api/user/state-login", false);
        xmlhttp.send();
        alert("Status zalogowania:\n"+xmlhttp.responseText);

        xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "/api/security/dmz", false);
        xmlhttp.send();
        alert("Status DMZ:\n"+xmlhttp.responseText);

        var SesTokInfo = true;
        xmlhttp = new XMLHttpRequest();
        if(!SesTokInfo){
        xmlhttp.open("GET", "/api/webserver/token", false);
        }
        else{
        xmlhttp.open("GET", "/api/webserver/SesTokInfo", false);
        }
        xmlhttp.send();
        alert("Token response:\n"+xmlhttp.responseText);
        if(!SesTokInfo){
        var oParser = new DOMParser();
        var oDOM = oParser.parseFromString(xmlhttp.responseText, "text/xml");
        var Token = oDOM.getElementsByTagName("token")[0].childNodes[0].nodeValue;
        }
        else {
        var oParser = new DOMParser();
        var oDOM = oParser.parseFromString(xmlhttp.responseText, "text/xml");
        var Token = oDOM.getElementsByTagName("TokInfo")[0].childNodes[0].nodeValue;
        }
        alert("Token only:\n"+Token);

        xmlhttp = new XMLHttpRequest();
        xmlhttp.open("POST", "/api/security/dmz", false);
        xmlhttp.setRequestHeader("__RequestVerificationToken", Token);
        xmlhttp.setRequestHeader("_ResponseSource", "Browser");
        xmlhttp.setRequestHeader("Content-Type", "text/xml");
        xmlhttp.send("<request><DmzStatus>1</DmzStatus><DmzIPAddress>192.168.8.100</DmzIPAddress></request>");
        alert("Status wlaczenia DMZ:\n"+xmlhttp.responseText);

        xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "/api/security/dmz", false);
        xmlhttp.send();
        alert("Ponownie Status DMZ:\n"+xmlhttp.responseText);
    }
})();
Jest to brzydki kod, ma dużo niepotrzebnych zapytań (do testów), ale w końcu zadziałał i ustawił mój DMZ na "1" dla adresu 192.168.8.100 :)

Użycie:
Po zalogowaniu się na https://192.168.8.1/html/home.html i wejściu w zakładkę "Ustawienia" pojawia się pytanie czy wykonać skrypt. Dalej kolejne alerty ze statusem akcji.

Po zmianie tego, co jest nam potrzebne można po prostu wyłączyć go w ustawieniach Tampermonkey'a.

Myślę, że jest to najprostszy sposób na modemy/routery które wymagają zalogowania się do zmiany ustawień.
szymek2000
Stały użytkownik forum
Posty: 79
Rejestracja: 2014-10-11, 09:42
Lokalizacja: kalisz

Re: HiLink API Huawei - Dyskusja

Post autor: szymek2000 »

Przmus pisze: [ciach]

Zainteresowała mnie część o DMZ, adres: http://192.168.8.1/api/security/dmz
Po otworzeniu w przeglądarce wyświetlało się:

Kod: Zaznacz cały

100003
Ale to dlatego, że byłem niezalogowany. Po zalogowaniu wyglądało to tak:

Kod: Zaznacz cały

0192.168.8.100
Pierwsza cyfra to status tej opcji (wyłączona), a dalej adres IP (pewnie domyślnie ustawiony, ale taki właśnie otrzymuje router główny).

Bawiłem się chwilę żeby zmienić to korzystając z curla, ale w końcu poddałem się. Przyszedł mi na myśl pomysł aby zrobić to z poziomu przeglądarki, już po zalogowaniu. I tak udało mi się stworzyć skrypt dla rozszerzenia Tampermonkey: https://chrome.google.com/webstore/deta ... fkfo?hl=en
O następującej treści:

Kod: Zaznacz cały

// ==UserScript==
// @name         Przemek-Huawei-Post-Request
// @namespace    x
// @version      0.1
// @description  bla bla bla
// @author       Me
// @match        https://192.168.8.1/html/quicksetup.html
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // Your code here...
    if (confirm('Wykonać skrypt z zapytaniem do routera Huawei?')) {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "/api/user/state-login", false);
        xmlhttp.send();
        alert("Status zalogowania:\n"+xmlhttp.responseText);

        xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "/api/security/dmz", false);
        xmlhttp.send();
        alert("Status DMZ:\n"+xmlhttp.responseText);

        var SesTokInfo = true;
        xmlhttp = new XMLHttpRequest();
        if(!SesTokInfo){
        xmlhttp.open("GET", "/api/webserver/token", false);
        }
        else{
        xmlhttp.open("GET", "/api/webserver/SesTokInfo", false);
        }
        xmlhttp.send();
        alert("Token response:\n"+xmlhttp.responseText);
        if(!SesTokInfo){
        var oParser = new DOMParser();
        var oDOM = oParser.parseFromString(xmlhttp.responseText, "text/xml");
        var Token = oDOM.getElementsByTagName("token")[0].childNodes[0].nodeValue;
        }
        else {
        var oParser = new DOMParser();
        var oDOM = oParser.parseFromString(xmlhttp.responseText, "text/xml");
        var Token = oDOM.getElementsByTagName("TokInfo")[0].childNodes[0].nodeValue;
        }
        alert("Token only:\n"+Token);

        xmlhttp = new XMLHttpRequest();
        xmlhttp.open("POST", "/api/security/dmz", false);
        xmlhttp.setRequestHeader("__RequestVerificationToken", Token);
        xmlhttp.setRequestHeader("_ResponseSource", "Browser");
        xmlhttp.setRequestHeader("Content-Type", "text/xml");
        xmlhttp.send("<request><DmzStatus>1</DmzStatus><DmzIPAddress>192.168.8.100</DmzIPAddress></request>");
        alert("Status wlaczenia DMZ:\n"+xmlhttp.responseText);

        xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "/api/security/dmz", false);
        xmlhttp.send();
        alert("Ponownie Status DMZ:\n"+xmlhttp.responseText);
    }
})();
[ciach]
u mnie coś nie odpala się ten skrypt
firefox 61.0.2, opcjonalnie jaki musi być to to zmienić? dziękuję za podpowiedz.
Przmus
Stały użytkownik forum
Posty: 98
Rejestracja: 2012-06-02, 03:43
Lokalizacja: Polska

Re: HiLink API Huawei - Dyskusja

Post autor: Przmus »

To spróbuj Tampermonkeyem na Chrome. Nie chce mi się sprawdzać dlaczego na FF nie działa, zwłaszcza, że jest to jednorazowa operacja.
szymek2000
Stały użytkownik forum
Posty: 79
Rejestracja: 2014-10-11, 09:42
Lokalizacja: kalisz

Re: HiLink API Huawei - Dyskusja

Post autor: szymek2000 »

Dla wersji chrome 68.0.3440.106 też nic się nie dzieje, skrypt zapisany, na liście niby aktywny choć w menu widnieje " brak aktywnych skryptów", sama wtyczka aktywna.
Przmus
Stały użytkownik forum
Posty: 98
Rejestracja: 2012-06-02, 03:43
Lokalizacja: Polska

Re: HiLink API Huawei - Dyskusja

Post autor: Przmus »

Sorry za późną odpowiedź. Na pewno odwiedzasz adres: https://192.168.8.1/html/quicksetup.html ?
Jeśli masz inny to w skrypcie trzeba zmienić wedle uznania.
http / https też ma znaczenie.
Ja to robiłem na szybko bo potrzebowałem tylko do jednej operacji, więc nie kładłem nacicku na szczegóły czy wygląd kodu.
tinware
Początkujący użytkownik forum
Posty: 9
Rejestracja: 2018-10-23, 23:38

Re: HiLink API Huawei - Dyskusja

Post autor: tinware »

VipeRsan, jestem pod wrażeniem Twojego artykułu - dzięki serdeczne!

U mnie dziś dwa tematy z E3372h-153.


1. Przekierowanie webservera zawsze na lokalny adres modemu

W pliku:
  • /app/webroot/WebApp/common/config/webserver/config.xml
...zmieniłem:

Kod: Zaznacz cały

<main_page>/html/index.html</main_page>
...na:

Kod: Zaznacz cały

<main_page>/index.html</main_page>

Utworzyłem nowy plik:
  • /app/webroot/WebApp/common/index.html
...i wpisałem do niego:

Kod: Zaznacz cały

<a href="html/index.html">Next...</a>

Wchodząc z lokalnego adresu...
  • 192.168.8.1
...zostaje przekierowany na adres...
  • 192.168.8.1/index.html
...i jest ok


Wchodząc z zewnętrznego adresu
  • X.X.X.X
...zostaje przekierowany na adres...
  • 192.168.8.1/index.html?url=X.X.X.X
...i to nie jest ok!


Mam NATowaną sięć VPN, w której modem 192.168.8.1 przyjmuje w niej inny adres np. 10.0.8.1.
Pomijam oczywiście serie przekierowań w JavaScript, dlatego stworzyłem sobie stronę 192.168.8.1/index.html
Z tego co sprawdziłem, za to przekierowanie odpowiedzialny jest WebServer na modemie.
Jak można zmienić, aby faktycznie robił przekierowanie na "/index.html", zamiast na "192.168.8.1/index.html".



2. Przekierowanie każdego requesta na adres WebUI modemu gdy nie ma Internetu

Gdy podłączamy modem pod USB od razu dostajemy informację - i to jest problem:
Obrazek

Gdy podczas korzystania z Internetu transfer danych zostanie nagle wyłączony, wszystkie strony www przekierowują się na adres modemu - to jest problem.
Obrazek

Przykładowo jak podłącze dwa modemy pod komputer, jeden 192.168.7.1/24, na drugi 192.168.8.1/24 wyłączę transfer danych, to zamiast wychodzić na świat przez pierwszy modem, każdy adres z sieci publicznej przekierowuje mnie na 192.168.8.1 - bez sensu.
Jak można pozbyć się tych przekierowań i automatycznego uruchamiania się przeglądarki ze stroną modemu?
m4jor
Początkujący użytkownik forum
Posty: 6
Rejestracja: 2019-10-12, 12:10

Re: HiLink API Huawei - Dyskusja

Post autor: m4jor »

Cześć mam modowany soft w huawei e3372s-153 HiLink
chcę dograć opcję DDNS, obecnie w WebGui wyskakuje mi błąd
100002 - brak wsparcia w firmware lub błędny adres API
jeśli chodzi o umiejętności progrmaistyczne to nie są za rewelacyjne, soft zmieniony ADB jest
w jaki sposób mogę dograć moduł DDNS?
będę wdzięczny za pomoc!
arsen99
Początkujący użytkownik forum
Posty: 10
Rejestracja: 2019-11-21, 12:14

Re: HiLink API Huawei - Dyskusja

Post autor: arsen99 »

Witam

Dane:
E3372s-153
Update_WEBUI_17.100.13.01.03_HILINK_Mod1.12
E3372h-153_Update_22.333.01.00.00_M_AT_05.10

Próbuję wyciągnąć rożne dane przez api.
Tworzę sobie skrypt w bashu, i go odpalam.
ogólnie nie ma problemu z takim zapytaniem:

Kod: Zaznacz cały

curl  -s -X GET "http://$MODEM_IP/api/webserver/SesTokInfo" > dane.xml
Zapisuje sobie dane do pliku potem pobieram token i sesję i mogę np puścić jakiegoś POST aby zmienić jakiś parametr.

Próbuję zrobić skrypt który będzie wysyłał kod ussd, a potem odbierał dane, np sprawdzał stan konta.
Ogólnie wysłanie się udaje bo jako respond otrzymuje -OK-

Kod: Zaznacz cały

curl  -X POST -d @request.txt "http://$MODEM_IP/api/ussd/send"
- OK

niestety odczytanie wiadomości juz mi się nie udaje:

Kod: Zaznacz cały

curl  -s -X GET "http://$MODEM_IP/api/ussd/get"
W ogóle za każdym razem gdy próbuje pobrać jakieś informacje z API, dostaje ten sam błąd:

Kod: Zaznacz cały

<error>
<code>125002</code>
<message></message>
</error>
nieważne co próbuję:

Kod: Zaznacz cały

curl -X GET "http://$MODEM_IP/api/device/information"
curl -X GET "http://$MODEM_IP/api/net/network"
curl -X GET "http://$MODEM_IP/api/net/net-mode"
itd..
zawsze kończy się tak samo.
Ponieważ ta komenda:

Kod: Zaznacz cały

curl  -s -X GET "http://$MODEM_IP/api/webserver/SesTokInfo"
zwraca mi normalnie w terminalu dane zakładam że inne komendy też powinny, i nie mam pojęcia jak to zrobić. Czy używając innych komend aby pobrać dane muszę jakoś przekazywać obecny token i id sesji? Jeżeli tak to jak to zrobić?

Dzięki za pomoc.
dzejk
Guru bezprzewodowy
Posty: 7187
Rejestracja: 2014-10-17, 14:37
Lokalizacja: internet

Re: HiLink API Huawei - Dyskusja

Post autor: dzejk »

Podejrzyj lub zapytaj tutaj https://eko.one.pl/?p=easyconfig
ODPOWIEDZ