github.com/aminovpavel/nomad@v0.11.8/ui/app/utils/ip-parts.js (about)

     1  // Splits any IP address into an address and a port
     2  export default function ipParts(ip) {
     3    const parts = ip ? ip.split(':') : [];
     4    if (parts.length === 0) {
     5      // ipv4, no port
     6      return { address: ip, port: undefined };
     7    } else if (parts.length === 2) {
     8      // ipv4, with port
     9      return { address: parts[0], port: parts[1] };
    10    } else if (ip.startsWith('[')) {
    11      // ipv6, with port
    12      return {
    13        address: parts.slice(0, parts.length - 1).join(':'),
    14        port: parts[parts.length - 1],
    15      };
    16    } else {
    17      // ipv6, no port
    18      return { address: ip, port: undefined };
    19    }
    20  }