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.js
- Committer:
- andrewboyson
- Date:
- 2020-12-26
- Revision:
- 143:cc2e148cb96a
- Parent:
- 133:98c6bf14bc37
- Child:
- 144:7106252b7abf
File content as of revision 143:cc2e148cb96a:
//Net script
'use strict';
let mac = '';
let tcp = '';
let dns = '';
function parseTcpLine(line)
{
if (line.length == 0) return;
let fields = line.split('\t');
let state = parseInt(fields[0], 16);
let idleMs = parseInt(fields[1], 16);
let ipType = parseInt(fields[2], 16);
let arIndex = parseInt(fields[3], 16);
let locPort = parseInt(fields[4], 16);
let remPort = parseInt(fields[5], 16);
let bytesRcvd = parseInt(fields[6], 16);
let bytesSent = parseInt(fields[7], 16);
switch (state)
{
case 1: tcp += " Syn"; break;
case 2: tcp += " Est"; break;
case 3: tcp += " Wait"; break;
default: tcp += state.toString().padStart(5, ' '); break;
}
let idleMinutes = Math.floor(idleMs / 1000 / 60);
tcp += idleMinutes.toString().padStart(4, ' ');
tcp += " ";
if (ipType == 0x0800) tcp += "IPv4";
else if (ipType == 0x86DD) tcp += "IPv6";
else tcp += fields[1];
tcp += arIndex.toString().padStart(4, ' ');
tcp += locPort.toString().padStart(9, ' ');
tcp += remPort.toString().padStart(9, ' ');
tcp += bytesRcvd.toString().padStart(6, ' ');
tcp += bytesSent.toString().padStart(6, ' ');
tcp += '\r\n';
}
function parseTcpLines(text)
{
tcp = "State Idle Protocol ARI Port-Loc Port-Rem Rcvd Sent\n";
text.split('\n').forEach(parseTcpLine);
}
function parseDnsLine(line)
{
if (line.length == 0) return;
let fields = line.split('\t');
dns += parseInt(fields[0], 16).toString().padStart(2, ' ');
let minutes = parseInt(fields[1], 16) / 1000 / 60;
dns += Math.floor(minutes).toString().padStart(4, ' ');
dns += ' ';
dns += Net.makeIp6(fields[2]).padEnd(40, ' ');
dns += ' ';
dns += fields[3];
dns += ' ';
dns += fields[4];
dns += '\r\n';
}
function parseGenLines(text)
{
let lines = text.split('\n');
mac = Net.makeMac(lines[ 0]);
}
function parse()
{
let topics = Ajax.response.split('\f');
parseGenLines(topics[0]);
parseTcpLines(topics[1]);
parseDnsLines(topics[2]);
}
function display()
{
let elem;
elem = Ajax.getElementOrNull('ajax-tcp' ); if (elem) elem.textContent = tcp;
elem = Ajax.getElementOrNull('ajax-mac' ); if (elem) elem.textContent = mac;
elem = Ajax.getElementOrNull('ajax-dns' ); if (elem) elem.textContent = dns;
}
Ajax.server = '/net-ajax';
Ajax.onResponse = function() { parse(); display(); };
Ajax.init();