Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: oldheating gps motorhome heating
base/net/web-net-script.inc
- Committer:
- andrewboyson
- Date:
- 2020-12-26
- Revision:
- 144:7106252b7abf
- Parent:
- 143:cc2e148cb96a
- Child:
- 145:d2bd78be00b2
File content as of revision 144:7106252b7abf:
"//Net script\n"
"'use strict';\n"
"\n"
"let mac = '';\n"
"let tcp = '';\n"
"let dns = '';\n"
"\n"
"function parseTcpLine(line)\n"
"{\n"
" if (line.length == 0) return;\n"
" let fields = line.split('\\t');\n"
" let state = parseInt(fields[0], 16);\n"
" let idleMs = parseInt(fields[1], 16);\n"
" let ipType = parseInt(fields[2], 16);\n"
" let arIndex = parseInt(fields[3], 16);\n"
" let locPort = parseInt(fields[4], 16);\n"
" let remPort = parseInt(fields[5], 16);\n"
" let bytesRcvd = parseInt(fields[6], 16);\n"
" let bytesSent = parseInt(fields[7], 16);\n"
" \n"
" switch (state)\n"
" {\n"
" case 1: tcp += \" Syn\"; break;\n"
" case 2: tcp += \" Est\"; break;\n"
" case 3: tcp += \" Wait\"; break;\n"
" default: tcp += state.toString().padStart(5, ' '); break;\n"
" }\n"
" \n"
" let idleMinutes = Math.floor(idleMs / 1000 / 60);\n"
" tcp += idleMinutes.toString().padStart(4, ' ');\n"
" tcp += \" \";\n"
" \n"
" if (ipType == 0x0800) tcp += \"IPv4\";\n"
" else if (ipType == 0x86DD) tcp += \"IPv6\";\n"
" else tcp += fields[1];\n"
" \n"
" tcp += arIndex.toString().padStart(4, ' ');\n"
" tcp += locPort.toString().padStart(9, ' ');\n"
" tcp += remPort.toString().padStart(9, ' ');\n"
" tcp += bytesRcvd.toString().padStart(6, ' ');\n"
" tcp += bytesSent.toString().padStart(6, ' ');\n"
" tcp += '\\r\\n';\n"
"}\n"
"function parseTcpLines(text)\n"
"{\n"
" tcp = \"State Idle Protocol ARI Port-Loc Port-Rem Rcvd Sent\\n\";\n"
" text.split('\\n').forEach(parseTcpLine);\n"
"}\n"
"function parseDnsLine(line)\n"
"{\n"
" if (line.length == 0) return;\n"
" let fields = line.split('\\t');\n"
" \n"
" dns += parseInt(fields[0], 16).toString().padStart(2, ' ');\n"
" let minutes = parseInt(fields[1], 16) / 1000 / 60;\n"
" dns += Math.floor(minutes).toString().padStart(4, ' ');\n"
" dns += ' ';\n"
" dns += Net.makeIp6(fields[2]).padEnd(40, ' ');\n"
" dns += ' ';\n"
" dns += fields[3];\n"
" dns += ' ';\n"
" dns += fields[4];\n"
" dns += '\\r\\n';\n"
"}\n"
"function parseDnsLines(text)\n"
"{\n"
" dns = '';\n"
" text.split('\\n').forEach(parseDnsLine);\n"
"}\n"
"function parseGenLines(text)\n"
"{\n"
" let lines = text.split('\\n');\n"
" mac = Net.makeMac(lines[ 0]);\n"
"}\n"
"function parse()\n"
"{\n"
" let topics = Ajax.response.split('\\f');\n"
" parseGenLines(topics[0]);\n"
" parseTcpLines(topics[1]);\n"
" parseDnsLines(topics[2]);\n"
"}\n"
"function display()\n"
"{\n"
" let elem;\n"
"\n"
" elem = Ajax.getElementOrNull('ajax-tcp' ); if (elem) elem.textContent = tcp;\n"
" elem = Ajax.getElementOrNull('ajax-mac' ); if (elem) elem.textContent = mac;\n"
" elem = Ajax.getElementOrNull('ajax-dns' ); if (elem) elem.textContent = dns;\n"
"}\n"
"\n"
"Ajax.server = '/net-ajax';\n"
"Ajax.onResponse = function() { parse(); display(); };\n"
"Ajax.init();\n"
""