NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name MODEM HUAWEI WEBUI HILINK IP HUNTER
// @namespace http://facebook.com/fakieh.maulana
// @version 13.0
// @description This userscript automatically reconnects the huawei web ui dashboard until a valid ip listed is detected.
// @author Fakieh Maulana
// @match http://192.168.8.1/html/home.html
// @updateURL https://openuserjs.org/meta/fakiehmaulana/MODEM_HUAWEI_WEBUI_HILINK_IP_HUNTER.meta.js
// ==/UserScript==
(function() {
'use strict';
var username = localStorage.iphUsername || "admin";
var password = localStorage.iphPassword || "admin";
var working_ip = localStorage.iphPatterns || "" ;
var RC = localStorage.iphRC || "60" ;
$('<input type="hidden" id="username" />').val(username).appendTo('body');
$('<input type="hidden" id="password" />').val(password).appendTo('body');
$('<div class="wlan_status" />')
.html('<h2>IP Hunter</h2>')
.append(
$('<table id="ip_hunter" width="95%" />')
.append('<tr><td colspan="2" id="err"></td></tr>')
.append('<tr><td>Username:</td><td><input type="text" id="iph_username" style="width:92%;" /></td></tr>')
.append('<tr><td>Password:</td><td><input type="password" id="iph_password" style="width:92%;" /></td></tr>')
.append('<tr><td>IP Patterns:</td><td><input type="text" id="iph_patterns" style="width:92%;" /></td></tr>')
.append('<tr><td>Auto Reconnect(detik):</td><td><input type="text" id="iph_RC" style="width:92%;" /></td></tr>')
.append($('<tr />').html($('<td colspan="5" style="padding: 3px 0;" />')
.append($('<button style="margin-right: 3px; padding: 3px 10px;" />').text('Save Changes').click(function(){
localStorage.iphUsername = $('#iph_username').val();
localStorage.iphPassword = $('#iph_password').val();
localStorage.iphPatterns = $('#iph_patterns').val();
localStorage.iphRC = $('#iph_RC').val();
l('Changes has been saved.');
$('#password').val($('#iph_password').val());
login(g_destnation, function() {
console.clear();
l('Successfully logged in to dashboard!');
s();
});
setTimeout(function() {
if($('.error_message').text().length > 1) {
l($('.error_message').text());
$('.error_message').hide();
}
}, 300);
location.reload();
}))
.append($('<button style="margin-right: 3px; padding: 3px 10px;" />').text('Login').click(function(){
$('#password').val($('#iph_password').val());
login(g_destnation, function() {
console.clear();
l('Successfully logged in to dashboard!');
s();
});
setTimeout(function() {
if($('.error_message').text().length > 1) {
l($('.error_message').text());
$('.error_message').hide();
}
}, 300);
}))
.append($('<button style="margin-right: 3px; padding: 3px 10px;" />').text('Auto Reconnect ON').click(function(){
rc();
}))
.append($('<button style="margin-right: 3px; padding: 3px 10px;" />').text('Connect/Reconnect').click(function(){
l(' ');
l('Loading..');
r();
}))
.append('<tr><td colspan="2"><textarea style="height:90px;" id="ip_hunter_log" readonly>-IP eg: 10.;100.11;100.12\n-kalo ip nyangkut(ga mau ganti) cabut trs colok modem\n-matiin auto reconnect close browser</textarea></td></tr>')
))
)
.appendTo('.login_info')
;
$('#iph_username').val(username);
$('#iph_password').val(password);
$('#iph_patterns').val(working_ip);
$('#iph_RC').val(RC);
function rc() {setInterval(function() {
r();
}, RC*1000);
}
function l(msg) {
console.log(msg);
setTimeout(function() {
var iphLog = $('#ip_hunter_log')[0];
iphLog.value += "\n"+msg;
iphLog.scrollTop = iphLog.scrollHeight;
}, 200);
}
function s() {
l('Scanning IP...');
getAjaxData('api/monitoring/status', function($xml) {
var ret = xml2object($xml);
if (ret.type == 'response') {
var current_ip = ret.response.WanIPAddress;
var supported = false;
if(current_ip && current_ip !== "") {
console.info('Current IP: ', current_ip);
l('Current IP: ' + current_ip);
working_ip.split(";").forEach(function(ip, index) {
if(current_ip.split(ip).length > 1) {
supported = true;
l('Match pattern: '+ ip);
}
else {
l('IP ('+current_ip+') not match');
}
if((index + 1) === working_ip.split(";").length) {
if(!supported) {
l('Reconnecting..');
r();
}
else {
l('IP ('+current_ip+') match');
l('Connected');
}
}
});
} else {
setTimeout(function() {
s();
}, 2000);
}
}
}, {
sync: true
});
}
function r() {
g_network_action = { dataswitch: "0" };
//l('Turning off...');
saveAjaxData('api/dialup/mobile-dataswitch', object2xml('request', g_network_action), function($xml) {
var ret = xml2object($xml);
l('Disconnecting...');
//l('Turned off.');
if(ret.response == "OK") {
setTimeout(function() {
g_network_action = { dataswitch: "1" };
//l('Turning on...');
saveAjaxData('api/dialup/mobile-dataswitch', object2xml('request', g_network_action), function($xml) {
var ret = xml2object($xml);
l('Connecting..');
setTimeout(function() {
s();
}, 2000);
});
}, 2000);
}
});
}
login(g_destnation, function() {
console.clear();
l('Successfully logged in to dashboard !');
s();
});
setTimeout(function() {
if($('.error_message').text().length > 1) {
l($('.error_message').text());
$('.error_message').hide();
}
}, 100);
})();