summaryrefslogtreecommitdiff
path: root/utils/networkUsage.js
blob: 4d3307425bfa612f87dd843e432e121e97c77b5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function defaultInterface(route) {
	var lines = route.split(/\r?\n/);
	for (var i = 0; i < lines.length; i++) {
		var l = lines[i];
		if (l.indexOf("default via") === 0) return l.split(/\s+/)[4];
	}
	throw "No default interface";
}
function getRxTxBytes(dev, iface) {
	var lines = dev.split(/\r?\n/);
	for (var i = 0; i < lines.length; i++) {
		var l = lines[i].trim();
		if (!l.startsWith(iface + ":")) continue;
		var p = l.split(/\s+/);
		return { rx: parseInt(p[1]), tx: parseInt(p[9]) };
	}
	throw "Interface not found";
}
function formatSize(size, unit) {
	const labels = ["B", "K", "M", "G", "T"];
	let power = 0,
		kilo = 2 ** 10;
	while (size > kilo && power < labels.length - 1) {
		size /= kilo;
		power++;
	}
	if (unit) {
		return labels[power];
	} else {
		return size.toFixed(0);
	}
}