Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 4x 4x 33x 1x 1x 1x 32x 32x 5x 5x 3x 29x 5x | import { isIPv4, isIPv6 } from 'net'
export function stripPort(ip: string) {
// Check if it's an IPv6 address with a port
if (ip.startsWith('[')) {
// IPv6 address with port
const closingBracketIndex = ip.indexOf(']')
if (closingBracketIndex !== -1) {
return ip.substring(1, closingBracketIndex)
}
} else {
// IPv4 address with port or IPv6 without brackets
const colonIndex = ip.lastIndexOf(':')
if (colonIndex !== -1) {
const ipWithoutPort = ip.substring(0, colonIndex)
// Validate if the part before the colon is a valid IPv4 or IPv6 address
if (isValidIp(ipWithoutPort)) {
return ipWithoutPort
}
}
}
// If no port is found, return the original IP
return ip
}
function isValidIp(ip: string) {
return isIPv4(ip) || isIPv6(ip)
}
|