-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathipaddr.js
35 lines (27 loc) · 882 Bytes
/
ipaddr.js
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
'use strict'
var os = require('os');
function getIP4Addrs() {
let ifaces = os.networkInterfaces();
let addrs = []
Object.keys(ifaces).forEach(function (ifname) {
var alias = 0;
ifaces[ifname].forEach(function (iface) {
if ('IPv4' !== iface.family || iface.internal !== false) {
// skip over internal (i.e. 127.0.0.1) and non-ipv4 addresses
return
}
if (alias >= 1) {
// this single interface has multiple ipv4 addresses
addrs.push({name:`${ifname}:${alias}`, addr:iface.address})
} else {
// this interface has only one ipv4 adress
addrs.push({name: ifname, addr: iface.address})
}
++alias
})
})
return addrs
}
module.exports = {
getIP4Addrs: getIP4Addrs,
}