diff --git a/pkg/karmadactl/cmdinit/utils/ip.go b/pkg/karmadactl/cmdinit/utils/ip.go index 3b5e75149..0fd20707d 100644 --- a/pkg/karmadactl/cmdinit/utils/ip.go +++ b/pkg/karmadactl/cmdinit/utils/ip.go @@ -5,19 +5,14 @@ import ( "net" ) -//ParseIP parse an ip address and return whether it is a v4 or v6 ip address +// ParseIP parses an IP address and returns whether it is a v4 or v6 IP address func ParseIP(s string) (net.IP, int, error) { ip := net.ParseIP(s) if ip == nil { return nil, 0, fmt.Errorf("%s is not a valid ip address", s) } - for i := 0; i < len(s); i++ { - switch s[i] { - case '.': - return ip, 4, nil - case ':': - return ip, 6, nil - } + if ip.To4() != nil { + return ip, 4, nil } - return nil, 0, fmt.Errorf("%s is not a valid ip address", s) + return ip, 6, nil }