Merge pull request #2793 from helen-frank/feature/OptimizationParseIP

optimize ParseIP
This commit is contained in:
karmada-bot 2022-11-14 16:27:01 +08:00 committed by GitHub
commit aeac17b77d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 9 deletions

View File

@ -5,19 +5,14 @@ import (
"net" "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) { func ParseIP(s string) (net.IP, int, error) {
ip := net.ParseIP(s) ip := net.ParseIP(s)
if ip == nil { if ip == nil {
return nil, 0, fmt.Errorf("%s is not a valid ip address", s) return nil, 0, fmt.Errorf("%s is not a valid ip address", s)
} }
for i := 0; i < len(s); i++ { if ip.To4() != nil {
switch s[i] {
case '.':
return ip, 4, nil return ip, 4, nil
case ':': }
return ip, 6, nil return ip, 6, nil
}
}
return nil, 0, fmt.Errorf("%s is not a valid ip address", s)
} }