Common stuff for all my devices' web server pages: css, login, log, ipv4, ipv6, firmware update, clock, reset info etc.

Dependents:   oldheating gps motorhome heating

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers web-net-class.inc Source File

web-net-class.inc

00001 "//Net class\n"
00002 "'use strict';\n"
00003 "\n"
00004 "//Private variables\n"
00005 "let netMacXhr_ = null;\n"
00006 "let netMacToFetch_ = '';\n"
00007 "\n"
00008 "class Net\n"
00009 "{\n"
00010 "    //Public functions\n"
00011 "    static addVendorToLocalStorage(mac)\n"
00012 "    {\n"
00013 "        if (netMacXhr_ && netMacXhr_.readyState != 4) return; //Do nothing if there is an ongoing request\n"
00014 "        netMacToFetch_ = mac;\n"
00015 "        netMacXhr_ = new XMLHttpRequest();\n"
00016 "        netMacXhr_.onreadystatechange = function()\n"
00017 "        {\n"
00018 "            if (netMacXhr_.readyState == 4)\n"
00019 "            {\n"
00020 "                if (netMacXhr_.status == 200)\n"
00021 "                {\n"
00022 "                    if (netMacXhr_.responseText == '')\n"
00023 "                    {\n"
00024 "                        localStorage.setItem(netMacToFetch_, 'Empty vendor');\n"
00025 "                    }\n"
00026 "                    else\n"
00027 "                    {\n"
00028 "                        localStorage.setItem(netMacToFetch_, netMacXhr_.responseText);\n"
00029 "                    }\n"
00030 "                }\n"
00031 "                else\n"
00032 "                {\n"
00033 "                    localStorage.setItem(netMacToFetch_, netMacXhr_.status);\n"
00034 "                }\n"
00035 "            }\n"
00036 "        };\n"
00037 "        netMacXhr_.open('GET', 'https://api.macaddress.io/v1?apiKey=at_dzgreB2SuPBDdy5mwTvivH3R3cvkH&search=' + netMacToFetch_, true);\n"
00038 "        netMacXhr_.send();\n"
00039 "    }\n"
00040 "    static getVendorFromLocalStorage(mac)\n"
00041 "    {\n"
00042 "        if (mac[1] === '2' ||\n"
00043 "            mac[1] === '6' ||\n"
00044 "            mac[1] === 'a' ||\n"
00045 "            mac[1] === 'A' ||\n"
00046 "            mac[1] === 'e' ||\n"
00047 "            mac[1] === 'E'    ) return '(Locally administered)';\n"
00048 "            \n"
00049 "        return localStorage.getItem(mac);\n"
00050 "    }\n"
00051 "    static clearVendorsFromLocalStorage()\n"
00052 "    {\n"
00053 "        localStorage.clear();\n"
00054 "    }\n"
00055 "    static makeIp4(text)\n"
00056 "    {\n"
00057 "        let result = '';\n"
00058 "        result += parseInt(text.substr(6, 2), 16).toString();\n"
00059 "        result += '.';\n"
00060 "        result += parseInt(text.substr(4, 2), 16).toString();\n"
00061 "        result += '.';\n"
00062 "        result += parseInt(text.substr(2, 2), 16).toString();\n"
00063 "        result += '.';\n"
00064 "        result += parseInt(text.substr(0, 2), 16).toString();\n"
00065 "        return result;\n"
00066 "    }\n"
00067 "    static makeIp4Rev(text)\n"
00068 "    {\n"
00069 "        let result = '';\n"
00070 "        result += parseInt(text.substr(0, 2), 16).toString();\n"
00071 "        result += '.';\n"
00072 "        result += parseInt(text.substr(2, 2), 16).toString();\n"
00073 "        result += '.';\n"
00074 "        result += parseInt(text.substr(4, 2), 16).toString();\n"
00075 "        result += '.';\n"
00076 "        result += parseInt(text.substr(6, 2), 16).toString();\n"
00077 "        return result;\n"
00078 "    }\n"
00079 "    static makeMac(text)\n"
00080 "    {\n"
00081 "        text = text.toLowerCase();\n"
00082 "        let result = '';\n"
00083 "        result += text.substr( 0, 2);\n"
00084 "        result += ':';\n"
00085 "        result += text.substr( 2, 2);\n"
00086 "        result += ':';\n"
00087 "        result += text.substr( 4, 2);\n"
00088 "        result += ':';\n"
00089 "        result += text.substr( 6, 2);\n"
00090 "        result += ':';\n"
00091 "        result += text.substr( 8, 2);\n"
00092 "        result += ':';\n"
00093 "        result += text.substr(10, 2);\n"
00094 "        return result;\n"
00095 "    }\n"
00096 "\n"
00097 "    static hexToBit(text, iBit)\n"
00098 "    {\n"
00099 "       let value = parseInt(text, 16);\n"
00100 "       value >>= iBit;\n"
00101 "       return value & 1;\n"
00102 "    }\n"
00103 "    static makeIp6(text)\n"
00104 "    {\n"
00105 "        function makeWord(text)\n"
00106 "        {\n"
00107 "            let word = parseInt(text, 16);\n"
00108 "            if (word === 0) return '';\n"
00109 "            return word.toString(16);\n"
00110 "        }\n"
00111 "        text = text.toLowerCase();\n"
00112 "        let result = '';\n"
00113 "        result += makeWord(text.substr( 0, 4));\n"
00114 "        result += ':';\n"
00115 "        result += makeWord(text.substr( 4, 4));\n"
00116 "        result += ':';\n"
00117 "        result += makeWord(text.substr( 8, 4));\n"
00118 "        result += ':';\n"
00119 "        result += makeWord(text.substr(12, 4));\n"
00120 "        result += ':';\n"
00121 "        result += makeWord(text.substr(16, 4));\n"
00122 "        result += ':';\n"
00123 "        result += makeWord(text.substr(20, 4));\n"
00124 "        result += ':';\n"
00125 "        result += makeWord(text.substr(24, 4));\n"
00126 "        result += ':';\n"
00127 "        result += makeWord(text.substr(28, 4));\n"
00128 "        return result;\n"
00129 "    }\n"
00130 "}"