networkInterface() fix secondary and link-local ip
This commit is contained in:
parent
69b406913e
commit
6b160d9a90
@ -872,18 +872,36 @@ function networkInterfaces(callback, rescan, defaultString) {
|
||||
let ieee8021xState = '';
|
||||
let type = '';
|
||||
|
||||
let ip4link = '';
|
||||
let ip4linksubnet = '';
|
||||
let ip6link = '';
|
||||
let ip6linksubnet = '';
|
||||
|
||||
if ({}.hasOwnProperty.call(ifaces, dev)) {
|
||||
let ifaceName = dev;
|
||||
ifaces[dev].forEach(function (details) {
|
||||
const ifaceName = dev;
|
||||
ifaces[dev].forEach((details) => {
|
||||
if (details.family === 'IPv4' || details.family === 4) {
|
||||
if (ip4.match(/^169.254/i)) {
|
||||
ip4link = details.address;
|
||||
ip4linksubnet = details.netmask;
|
||||
} else if (!ip4) {
|
||||
ip4 = details.address;
|
||||
ip4subnet = details.netmask;
|
||||
}
|
||||
}
|
||||
if (!ip4 && (details.family === 'IPv4' || details.family === 4)) {
|
||||
ip4 = details.address;
|
||||
ip4subnet = details.netmask;
|
||||
}
|
||||
if (details.family === 'IPv6' || details.family === 6) {
|
||||
if (!ip6 || ip6.match(/^fe80::/i)) {
|
||||
if (!ip6 && !ip6.match(/^fe80::/i)) {
|
||||
ip6 = details.address;
|
||||
ip6subnet = details.netmask;
|
||||
}
|
||||
if (ip6.match(/^fe80::/i)) {
|
||||
ip6link = details.address;
|
||||
ip6linksubnet = details.netmask;
|
||||
}
|
||||
}
|
||||
mac = details.mac;
|
||||
// fallback due to https://github.com/nodejs/node/issues/13581 (node 8.1 - node 8.2)
|
||||
@ -895,7 +913,15 @@ function networkInterfaces(callback, rescan, defaultString) {
|
||||
mac = _mac[dev] || '';
|
||||
}
|
||||
});
|
||||
let iface = dev.split(':')[0].trim().toLowerCase();
|
||||
if (!ip4 && ip4link) {
|
||||
ip4 = ip4link;
|
||||
ip4subnet = ip4linksubnet;
|
||||
}
|
||||
if (!ip6 && ip6link) {
|
||||
ip6 = ip6link;
|
||||
ip6subnet = ip6linksubnet;
|
||||
}
|
||||
const iface = dev.split(':')[0].trim().toLowerCase();
|
||||
let ifaceSanitized = '';
|
||||
const s = util.isPrototypePolluted() ? '---' : util.sanitizeShellString(iface);
|
||||
const l = util.mathMin(s.length, 2000);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user