/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ // Splits any IP address into an address and a port export default function ipParts(ip) { const parts = ip ? ip.split(':') : []; if (parts.length === 0) { // ipv4, no port return { address: ip, port: undefined }; } else if (parts.length === 2) { // ipv4, with port return { address: parts[0], port: parts[1] }; } else if (ip.startsWith('[')) { // ipv6, with port return { address: parts.slice(0, parts.length - 1).join(':'), port: parts[parts.length - 1], }; } else { // ipv6, no port return { address: ip, port: undefined }; } }