UNPKG

nanoleaf-cove

Version:
85 lines (84 loc) 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var mOs = require('os'); var os; if (typeof window !== 'undefined' && typeof window.os !== undefined) os = window.os; else os = mOs; var getBroadcastNetworkInterfaces = function () { var list = []; var netifs = mOs.networkInterfaces(); for (var dev in netifs) { netifs[dev].forEach(function (info) { if (info.family !== 'IPv4' || info.internal === true) { return; } if (/^169\.254\./.test(info.address)) { return; } list.push(getBroadcastAddress(info)); }); } return list; }; var getHostIPNetworkInterfaces = function () { var list = []; var netifs = mOs.networkInterfaces(); for (var dev in netifs) { netifs[dev].forEach(function (info) { if (info.family !== 'IPv4' || info.internal === true) { return; } if (/^169\.254\./.test(info.address)) { return; } list.push(info.address); }); } return list; }; var getNetworkInterfaces = function () { var list = []; var netifs = mOs.networkInterfaces(); for (var dev in netifs) { netifs[dev].forEach(function (info) { if (info.family !== 'IPv4' || info.internal === true) { return; } if (/^169\.254\./.test(info.address)) { return; } info['broadcast'] = getBroadcastAddress(info); list.push(info); }); } return list; }; var getBroadcastAddress = function (info) { var addr_parts = convIPv4ToNumList(info.address); var mask_parts = convIPv4ToNumList(info.netmask); var cast_parts = []; for (var i = 0; i < 4; i++) { if (mask_parts[i] === 0) { cast_parts.push(255); } else { cast_parts.push(addr_parts[i]); } } return cast_parts.join('.'); }; var convIPv4ToNumList = function (address) { var parts = address.split(/\./); var list = []; parts.forEach(function (n, i) { list.push(parseInt(n, 10)); }); return list; }; exports.default = { getBroadcastNetworkInterfaces: getBroadcastNetworkInterfaces, getHostIPNetworkInterfaces: getHostIPNetworkInterfaces, getNetworkInterfaces: getNetworkInterfaces, };