UNPKG

3.72 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../src/main-process/utils/networkInterface.js"],"names":["MAC_REGEXP","interfaces","macAddresses","concat","Object","keys","filter","key","map","item","interface","i","mac","startsWith","value","index","array","indexOf","length","console","warn","ifConfig","toString","push","split","line","match","Boolean","netInterface","filtered","family","address","ip","Error"],"mappings":";;;;;;AAAA;;AACA;;AAEA,MAAMA,aAAa,sDAAnB;;kBAEe,4BAAM;AACnB,QAAMC,aAAa,4BAAnB;AACA,QAAMC,eAAe,GAClBC,MADkB,CAEjB,GAAGC,OAAOC,IAAP,CAAYJ,UAAZ,EACAK,MADA,CACOC,OAAOA,QAAQ,IADtB,EAEAC,GAFA,CAEID,OAAON,WAAWM,GAAX,EAAgBC,GAAhB,CAAoBC,wBAAWC,WAAWH,GAAtB,IAA8BE,IAA9B,CAApB,CAFX,CAFc,EAMlBD,GANkB,CAMdG,KAAKA,EAAEC,GANO,EAOlBN,MAPkB,CAOXM,OAAOA,OAAOA,QAAQ,mBAAf,IAAsC,CAACA,IAAIC,UAAJ,CAAe,cAAf,CAPnC,EAQlBP,MARkB,CAQX,CAACQ,KAAD,EAAQC,KAAR,EAAeC,KAAf,KAAyBA,MAAMC,OAAN,CAAcH,KAAd,MAAyBC,KARvC,CAArB;;AAUA,MAAI,CAACb,aAAagB,MAAlB,EAA0B;AACxBC,YAAQC,IAAR,CAAa,4CAAb;AACA,UAAMC,WAAW,6BAAS,UAAT,EAAqBC,QAArB,EAAjB;AACApB,iBAAaqB,IAAb,CACE,GAAGF,SACAG,KADA,CACM,IADN,EAEAhB,GAFA,CAEIiB,QAAQA,KAAKC,KAAL,CAAW1B,UAAX,CAFZ,EAGAM,MAHA,CAGOqB,OAHP,EAIAnB,GAJA,CAIIkB,SAASA,MAAM,CAAN,CAJb,EAKApB,MALA,CAKOM,OAAOA,OAAOA,QAAQ,mBAL7B,EAMAN,MANA,CAMO,CAACQ,KAAD,EAAQC,KAAR,EAAeC,KAAf,KAAyBA,MAAMC,OAAN,CAAcH,KAAd,MAAyBC,KANzD,CADL;AASD;;AAED,OAAK,IAAIR,GAAT,IAAgBH,OAAOC,IAAP,CAAYJ,UAAZ,CAAhB,EAAyC;AACvC,QAAIM,QAAQ,IAAZ,EAAkB;;AAElB,QAAIqB,eAAe3B,WAAWM,GAAX,CAAnB;AACA,QAAIsB,WAAWD,aAAatB,MAAb,CAAoBG,QAAQA,KAAKqB,MAAL,KAAgB,MAA5C,CAAf;;AAEA,QAAID,SAASX,MAAT,KAAoB,CAAxB,EAA2B;AACzBU,qBAAeC,QAAf;AACD;;AAED,SAAK,IAAIpB,IAAT,IAAiBmB,YAAjB,EAA+B;AAC7B,UAAI,CAACnB,KAAKG,GAAN,IAAa,CAACH,KAAKsB,OAAvB,EAAgC;AAC9B;AACD;;AAED,UAAItB,KAAKsB,OAAL,KAAiB,WAAjB,IAAgCtB,KAAKsB,OAAL,KAAiB,KAArD,EAA4D;AAC1D;AACD;;AAED,aAAO;AACL7B,oBADK;AAELU,aAAKH,KAAKG,GAFL;AAGLoB,YAAIvB,KAAKsB;AAHJ,OAAP;AAKD;AACF;;AAED,QAAM,IAAIE,KAAJ,CAAU,iCAAV,CAAN;AACD,C","file":"networkInterface.js","sourcesContent":["import { networkInterfaces } from 'os';\nimport { execSync } from 'child_process';\n\nconst MAC_REGEXP = /(?:ether|HWaddr)\\s+((?:[a-z0-9]{2}:){5}[a-z0-9]{2})/i;\n\nexport default () => {\n const interfaces = networkInterfaces();\n const macAddresses = []\n .concat(\n ...Object.keys(interfaces)\n .filter(key => key !== 'lo')\n .map(key => interfaces[key].map(item => ({ interface: key, ...item }))),\n )\n .map(i => i.mac)\n .filter(mac => mac && mac !== '00:00:00:00:00:00' && !mac.startsWith('00:00:00:00:'))\n .filter((value, index, array) => array.indexOf(value) === index);\n\n if (!macAddresses.length) {\n console.warn('no mac addresses, falling back to ifconfig');\n const ifConfig = execSync('ifconfig').toString();\n macAddresses.push(\n ...ifConfig\n .split('\\n')\n .map(line => line.match(MAC_REGEXP))\n .filter(Boolean)\n .map(match => match[1])\n .filter(mac => mac && mac !== '00:00:00:00:00:00')\n .filter((value, index, array) => array.indexOf(value) === index),\n );\n }\n\n for (let key of Object.keys(interfaces)) {\n if (key === 'lo') continue;\n\n let netInterface = interfaces[key];\n let filtered = netInterface.filter(item => item.family === 'IPv4');\n\n if (filtered.length !== 0) {\n netInterface = filtered;\n }\n\n for (let item of netInterface) {\n if (!item.mac || !item.address) {\n continue;\n }\n\n if (item.address === '127.0.0.1' || item.address === '::1') {\n continue;\n }\n\n return {\n macAddresses,\n mac: item.mac,\n ip: item.address,\n };\n }\n }\n\n throw new Error('Could not find valid ip address');\n};\n"]}
\No newline at end of file