optimize ParseIP

Signed-off-by: helen <haitao.zhang@daocloud.io>
This commit is contained in:
helen 2022-11-14 00:15:37 +08:00
parent 25abf99991
commit 6fcd98264f
1 changed files with 4 additions and 9 deletions

View File

@ -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
}