PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` 'use strict'; const defaultGateway = require('default-gateway'); const {networkInterfaces} = require('os'); const {parse, parseCIDR} = require('ipaddr.js'); function findIp(gateway) { const gatewayIp = parse(gateway); // Look for the matching interface in all local interfaces. for (const addresses of Object.values(networkInterfaces())) { for (const {cidr} of addresses) { const net = parseCIDR(cidr); if (net[0] && net[0].kind() === gatewayIp.kind() && gatewayIp.match(net)) { return net[0].toString(); } } } } async function promise(family) { try { const {gateway} = await defaultGateway[family](); return findIp(gateway); } catch {} } function sync(family) { try { const {gateway} = defaultGateway[family].sync(); return findIp(gateway); } catch {} } const internalIp = {}; internalIp.v6 = () => promise('v6'); internalIp.v4 = () => promise('v4'); internalIp.v6.sync = () => sync('v6'); internalIp.v4.sync = () => sync('v4'); module.exports = internalIp;