IP Hunter by Yaj of VPN5

This userscript automatically reconnects the mobile data for some HUAWEI modems until it connects to a matching IP address.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         IP Hunter by Yaj of VPN5
// @namespace    http://www.symbianize.com/showthread.php?t=1397083
// @version      2.1
// @description  This userscript automatically reconnects the mobile data for some HUAWEI modems until it connects to a matching IP address.
// @author       Yaj of VPN5
// @icon         http://www.symbianize.com/images/symb_avatars/avatar456082_9.gif
// @match        http://192.168.8.1/html/home.html
// @match        http://192.168.1.1/html/home.html
// @match        http://192.168.254.254/html/home.html
// @grant        none
// ==/UserScript==

/*
 * IP Hunter of VPN5
 * http://vpn5.net
 *
 * THIS WORK IS COPYRIGHT PROTECTED
 * http://www.copyrighted.com/copyrights/view/v6tm-qzys-ym79-9saw
 *
 * MODIFYING THE TOOL FOR YOUR PERSONAL USE IS PERMITTED
 * HOWEVER, RE-BRANDING OR REMOVING THIS COPYRIGHT NOTICE IS NOT ALLOWED.
 *
 * IF YOU HAVE ANY SUGGESTIONS TO IMPROVE THIS TOOL,
 * YOU CAN PM ME ON SYMBIANIZE OR ON FACEBOOK.
 */

! function() {
    "use strict";

    function t(t) {
        console.log(t), setTimeout(function() {
            var e = $("#ip_hunter_log")[0];
            e.value += "\n" + t, e.scrollTop = e.scrollHeight
        }, 200)
    }

    function e() {
        t("Scanning..."), getAjaxData("api/monitoring/status", function(a) {
            var o = xml2object(a);
            if ("response" == o.type) {
                var i = o.response.WanIPAddress,
                    r = !1;
                i && "" !== i ? (console.info("Current IP: ", i), t("Current IP: " + i), s.split(";").forEach(function(e, a) {
                    !i.startsWith(e) || i.startsWith("10.116") && i.startsWith("100.116") || (r = !0, t("Matched with pattern: " + e)), a + 1 === s.split(";").length && (r ? (t("IP (" + i + ") is valid."), t("Edited by: Yaj of VPN5"), t("Hunting successful connect to VPN5 now!!")) : (t("Reconnecting..."), n()))
                })) : setTimeout(function() {
                    e()
                }, 3e3)
            }
        }, {
            sync: !0
        })
    }

    function n() {
        g_network_action = {
            dataswitch: "0"
        }, saveAjaxData("api/dialup/mobile-dataswitch", object2xml("request", g_network_action), function(n) {
            var a = xml2object(n);
            "OK" == a.response && setTimeout(function() {
                g_network_action = {
                    dataswitch: "1"
                }, saveAjaxData("api/dialup/mobile-dataswitch", object2xml("request", g_network_action), function(n) {
                    xml2object(n);
                    t("Connected!!!"), setTimeout(function() {
                        e()
                    }, 3e3)
                })
            }, 3e3)
        })
    }
    var a = [];
    "undefined" == typeof jQuery && a.push("jQuery"), "undefined" == typeof login && a.push("login"), "undefined" == typeof getAjaxData && a.push("getAjaxData"), "undefined" == typeof saveAjaxData && a.push("saveAjaxData"), "undefined" == typeof xml2object && a.push("xml2object"), "undefined" == typeof object2xml && a.push("object2xml"), a.length > 0 && prompt("SORRY, THIS TOOL CURRENTLY DOESN'T SUPPORT YOUR DASHBOARD.\n\nYOU CAN COPY THE ERROR LOG BELOW AND SEND IT TO THE DEVELOPER:", "undefined:" + a.join(";"));
    var o = localStorage.iphUsername || "admin",
        i = localStorage.iphPassword || "",
        s = localStorage.iphPatterns || "10.;100.11;100.12;100.13;100.14;100.15;100.16;100.17;100.18;100.19;100.2";
    $('<input type="hidden" id="username" />').val(o).appendTo("body"), $('<input type="hidden" id="password" />').val(i).appendTo("body");
    var r = $('<div class="wlan_status" />').html('<h2>IP Hunter v2.1 <small>Edited by: <a href="https://www.facebook.com/groups/1298570873496987" target="_blank"><font color="green">Yaj of VPN5</a></h2></font></small>').append($('<table id="ip_hunter" width="91%" />').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 colspan="2"><textarea style="width:95%;height:110px;" id="ip_hunter_log" readonly></textarea></td></tr>').append($("<tr />").html($('<td colspan="2" 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(), t("Changes has been saved."), $("#password").val($("#iph_password").val()), login(g_destnation, function() {
            console.clear(), t("WELCOME TO VPN5 IP HUNTER"), e()
        }), setTimeout(function() {
            $(".error_message").text().length > 1 && (t($(".error_message").text()), $(".error_message").hide())
        }, 300)
    })).append($('<button style="margin-right: 3px; padding: 3px 10px;" />').text("Login").click(function() {
        $("#password").val($("#iph_password").val()), login(g_destnation, function() {
            console.clear(), t("WELCOME TO VPN5 IP HUNTER"), e()
        }), setTimeout(function() {
            $(".error_message").text().length > 1 && (t($(".error_message").text()), $(".error_message").hide())
        }, 300)
    })).append($('<button style="margin-right: 3px; padding: 3px 10px;" />').text("Reconnect").click(function() {
        t("Reconnecting..."), n()
    })))));
    document.querySelector(".login_info") ? r.appendTo(".login_info") : r.css({
        width: "290px",
        background: "white",
        border: "1px solid #eee",
        padding: "10px",
        position: "fixed",
        bottom: "0px",
        left: "0px",
        "z-index": "9999"
    }).appendTo("body").append('<span style="color:red;">*NOTE: This tool might not display well. This is just a work around for your dashboard.</span>'), $("#iph_username").val(o), $("#iph_password").val(i), $("#iph_patterns").val(s), login(g_destnation, function() {
        console.clear(), t("WELCOME TO VPN5 IP HUNTER"), e()
    }), setTimeout(function() {
        $(".error_message").text().length > 1 && (t($(".error_message").text()), $(".error_message").hide())
    }, 300)
}();