blob: a7131f2811cf19763ca7f3221afe9fa5dfb7719a (
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
33
34
35
36
37
38
39
40
41
|
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)
}
}
// const iface = defaultInterface()
// let prev = getRxTxBytes(iface)
// setInterval(() => {
// const cur = getRxTxBytes(iface)
// const dr = (cur.rx - prev.rx) / (interval / 1000)
// const dt = (cur.tx - prev.tx) / (interval / 1000)
// prev = cur
// console.log(formatSize(dr), formatSize(dt))
// }, interval)
|