Merge pull request #2793 from helen-frank/feature/OptimizationParseIP
optimize ParseIP
This commit is contained in:
commit
aeac17b77d
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue