UNPKG

@chainsafe/libp2p-quic

Version:
25 lines 861 B
import os from 'node:os'; import { multiaddr } from '@multiformats/multiaddr'; const ProtoFamily = { ip4: 'IPv4', ip6: 'IPv6' }; export function getMultiaddrs(proto, ip, port) { const toMa = (ip) => multiaddr(`/${proto}/${ip}/udp/${port}/quic-v1`); return (isAnyAddr(ip) ? getNetworkAddrs(ProtoFamily[proto]) : [ip]).map(toMa); } export function isAnyAddr(ip) { return ['0.0.0.0', '::'].includes(ip); } const networks = os.networkInterfaces(); function getNetworkAddrs(family) { const addresses = []; for (const [, netAddrs] of Object.entries(networks)) { if (netAddrs != null) { for (const netAddr of netAddrs) { if (netAddr.family === family) { addresses.push(netAddr.address); } } } } return addresses; } //# sourceMappingURL=utils.js.map