@chainsafe/libp2p-quic
Version:
A QUIC transport for libp2p
25 lines • 861 B
JavaScript
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