<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="lt">
	<id>https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Huawei_B525_4G_router</id>
	<title>Huawei B525 4G router - Versijų istorija</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Huawei_B525_4G_router"/>
	<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Huawei_B525_4G_router&amp;action=history"/>
	<updated>2026-04-15T10:54:14Z</updated>
	<subtitle>Šio puslapio versijų istorija projekte</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.eofnet.lt/w//index.php?title=Huawei_B525_4G_router&amp;diff=9568&amp;oldid=prev</id>
		<title>\dev\null 12:14, 23 liepos 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Huawei_B525_4G_router&amp;diff=9568&amp;oldid=prev"/>
		<updated>2023-07-23T12:14:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;lt&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Ankstesnė versija&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;12:14, 23 liepos 2023 versija&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;1 eilutė:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1 eilutė:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Taip pat skaitykite atskirą straipsnį šio routerio monitorinimui [[Munin huawei b525]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Taip pat skaitykite atskirą straipsnį šio routerio monitorinimui [[Munin huawei b525]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Kaip gauti root prieigos teises šiame įrenginyje, [https://github.com/e1z0/Huawei-B525-root skaitykite čia].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== DNS Rankinis keitimas ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== DNS Rankinis keitimas ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>\dev\null</name></author>
	</entry>
	<entry>
		<id>https://wiki.eofnet.lt/w//index.php?title=Huawei_B525_4G_router&amp;diff=9128&amp;oldid=prev</id>
		<title>\dev\null 14:22, 13 balandžio 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Huawei_B525_4G_router&amp;diff=9128&amp;oldid=prev"/>
		<updated>2020-04-13T14:22:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;lt&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Ankstesnė versija&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;14:22, 13 balandžio 2020 versija&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;1 eilutė:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1 eilutė:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Taip pat skaitykite atskirą straipsnį šio routerio monitorinimui [[Munin huawei b525]].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== DNS Rankinis keitimas ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== DNS Rankinis keitimas ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Einame i http://192.168.254.254/html/dhcp.html, isijungiame ant browserio javascript console ir irasome:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Einame i http://192.168.254.254/html/dhcp.html, isijungiame ant browserio javascript console ir irasome:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>\dev\null</name></author>
	</entry>
	<entry>
		<id>https://wiki.eofnet.lt/w//index.php?title=Huawei_B525_4G_router&amp;diff=8914&amp;oldid=prev</id>
		<title>\dev\null: reboot router</title>
		<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Huawei_B525_4G_router&amp;diff=8914&amp;oldid=prev"/>
		<updated>2019-06-13T10:57:46Z</updated>

		<summary type="html">&lt;p&gt;reboot router&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Naujas puslapis&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== DNS Rankinis keitimas ==&lt;br /&gt;
Einame i http://192.168.254.254/html/dhcp.html, isijungiame ant browserio javascript console ir irasome:&lt;br /&gt;
 $('#dhcp_dns_statistic').show();&lt;br /&gt;
 $('#dhcp_primary_dns').show();&lt;br /&gt;
 $('#dhcp_secondary_dns').show();&lt;br /&gt;
&lt;br /&gt;
== Reboot router script ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python3&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot; reboots the Huawei 618 router (and potentially others with similar firmware)  &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
import xml.etree.ElementTree as ET&lt;br /&gt;
import sys&lt;br /&gt;
import uuid&lt;br /&gt;
import hashlib&lt;br /&gt;
import hmac&lt;br /&gt;
from time import sleep&lt;br /&gt;
from binascii import hexlify&lt;br /&gt;
import requests&lt;br /&gt;
#from config import ROUTER, USER, PASSWORD&lt;br /&gt;
&lt;br /&gt;
ROUTER = &amp;quot;192.168.1.254&amp;quot;&lt;br /&gt;
USER = &amp;quot;admin&amp;quot;&lt;br /&gt;
PASSWORD = b&amp;quot;admin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def generate_nonce():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; generate random clientside nonce &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    return uuid.uuid4().hex + uuid.uuid4().hex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def setup_session(client, server):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; gets the url from the server ignoring the respone, just to get session cookie set up &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://%s/&amp;quot; % server&lt;br /&gt;
    response = client.get(url)&lt;br /&gt;
    response.raise_for_status()&lt;br /&gt;
    # will have to debug this one as without delay here it was throwing a buffering exception on one of the machines&lt;br /&gt;
    sleep(1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def get_server_token(client, server):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; retrieves server token &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://%s/api/webserver/token&amp;quot; % server&lt;br /&gt;
    token_response = client.get(url).text&lt;br /&gt;
    root = ET.fromstring(token_response)&lt;br /&gt;
&lt;br /&gt;
    return root.findall('./token')[0].text&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def get_client_proof(clientnonce, servernonce, password, salt, iterations):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; calculates server client proof (part of the SCRAM algorithm) &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    msg = &amp;quot;%s,%s,%s&amp;quot; % (clientnonce, servernonce, servernonce)&lt;br /&gt;
    salted_pass = hashlib.pbkdf2_hmac(&lt;br /&gt;
        'sha256', password, bytearray.fromhex(salt), iterations)&lt;br /&gt;
    client_key = hmac.new(b'Client Key', msg=salted_pass,&lt;br /&gt;
                          digestmod=hashlib.sha256)&lt;br /&gt;
    stored_key = hashlib.sha256()&lt;br /&gt;
    stored_key.update(client_key.digest())&lt;br /&gt;
    signature = hmac.new(msg.encode('utf_8'),&lt;br /&gt;
                         msg=stored_key.digest(), digestmod=hashlib.sha256)&lt;br /&gt;
    client_key_digest = client_key.digest()&lt;br /&gt;
    signature_digest = signature.digest()&lt;br /&gt;
    client_proof = bytearray()&lt;br /&gt;
    i = 0&lt;br /&gt;
    while i &amp;lt; client_key.digest_size:&lt;br /&gt;
        client_proof.append(client_key_digest[i] ^ signature_digest[i])&lt;br /&gt;
        i = i + 1&lt;br /&gt;
&lt;br /&gt;
    return hexlify(client_proof)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def login(client, server, user, password):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; logs in to the router using SCRAM method of authentication &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    setup_session(client, server)&lt;br /&gt;
    token = get_server_token(client, server)&lt;br /&gt;
    url = &amp;quot;http://%s/api/user/challenge_login&amp;quot; % server&lt;br /&gt;
    request = ET.Element('request')&lt;br /&gt;
    username = ET.SubElement(request, 'username')&lt;br /&gt;
    username.text = user&lt;br /&gt;
    clientnonce = generate_nonce()&lt;br /&gt;
    firstnonce = ET.SubElement(request, 'firstnonce')&lt;br /&gt;
    firstnonce.text = clientnonce&lt;br /&gt;
    mode = ET.SubElement(request, 'mode')&lt;br /&gt;
    mode.text = '1'&lt;br /&gt;
    headers = {'Content-type': 'text/html',&lt;br /&gt;
               '__RequestVerificationToken': token[32:]}&lt;br /&gt;
    response = client.post(url, data=ET.tostring(&lt;br /&gt;
        request, encoding='utf8', method='xml'), headers=headers)&lt;br /&gt;
    scram_data = ET.fromstring(response.text)&lt;br /&gt;
    servernonce = scram_data.findall('./servernonce')[0].text&lt;br /&gt;
    salt = scram_data.findall('./salt')[0].text&lt;br /&gt;
    iterations = int(scram_data.findall('./iterations')[0].text)&lt;br /&gt;
    verification_token = response.headers['__RequestVerificationToken']&lt;br /&gt;
    login_request = ET.Element('request')&lt;br /&gt;
    clientproof = ET.SubElement(login_request, 'clientproof')&lt;br /&gt;
    clientproof.text = get_client_proof(&lt;br /&gt;
        clientnonce, servernonce, password, salt, iterations).decode('UTF-8')&lt;br /&gt;
    finalnonce = ET.SubElement(login_request, 'finalnonce')&lt;br /&gt;
    finalnonce.text = servernonce&lt;br /&gt;
    headers = {'Content-type': 'application/x-www-form-urlencoded; charset=UTF-8',&lt;br /&gt;
               '__RequestVerificationToken': verification_token}&lt;br /&gt;
&lt;br /&gt;
    url = &amp;quot;http://%s/api/user/authentication_login&amp;quot; % server&lt;br /&gt;
    result = client.post(url, data=ET.tostring(&lt;br /&gt;
        login_request, encoding='utf8', method='xml'), headers=headers)&lt;br /&gt;
    verification_token = result.headers['__RequestVerificationTokenone']&lt;br /&gt;
&lt;br /&gt;
    return verification_token&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def reboot(client, server, user, password):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; reboots the router :) &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    verification_token = login(client, server, user, password)&lt;br /&gt;
    url = &amp;quot;http://%s/api/device/control&amp;quot; % server&lt;br /&gt;
    headers = {'Content-type': 'application/x-www-form-urlencoded; charset=UTF-8',&lt;br /&gt;
               '__RequestVerificationToken': verification_token}&lt;br /&gt;
    client.post(&lt;br /&gt;
        url, data='&amp;lt;?xml version:&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;request&amp;gt;&amp;lt;Control&amp;gt;1&amp;lt;/Control&amp;gt;&amp;lt;/request&amp;gt;', headers=headers)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot; main method &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    client = requests.Session()&lt;br /&gt;
    reboot(client, ROUTER, USER, PASSWORD)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    sys.exit(main())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tinklas]]&lt;br /&gt;
[[Category:Huawei]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
&lt;br /&gt;
== 3rdparty info ==&lt;br /&gt;
* [http://4pda.ru/forum/index.php?showtopic=800482&amp;amp;st=420#entry65306958]&lt;br /&gt;
* [http://4pda.ru/forum/index.php?showtopic=800482&amp;amp;st=280#entry64307127]&lt;br /&gt;
* [http://4pda.ru/forum/lofiversion/index.php?t800482-300.html]&lt;/div&gt;</summary>
		<author><name>\dev\null</name></author>
	</entry>
</feed>