1.4.5.2
This commit is contained in:
53
EdgeCommon/pkg/configutils/ip.go
Normal file
53
EdgeCommon/pkg/configutils/ip.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package configutils
|
||||
|
||||
import (
|
||||
"net"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// IsIPv4 检查是否为IPv4
|
||||
func IsIPv4(netIP net.IP) bool {
|
||||
if len(netIP) == 0 {
|
||||
return false
|
||||
}
|
||||
return netIP.To4() != nil
|
||||
}
|
||||
|
||||
// IsIPv6 检查是否为IPv6
|
||||
func IsIPv6(netIP net.IP) bool {
|
||||
if len(netIP) == 0 {
|
||||
return false
|
||||
}
|
||||
return netIP.To4() == nil && netIP.To16() != nil
|
||||
}
|
||||
|
||||
// IPVersion 获取IP版本号
|
||||
func IPVersion(netIP net.IP) int {
|
||||
if len(netIP) == 0 {
|
||||
return 0
|
||||
}
|
||||
|
||||
if netIP.To4() != nil {
|
||||
return 4
|
||||
}
|
||||
|
||||
if netIP.To16() != nil {
|
||||
return 6
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
// QuoteIP 为IPv6加上括号
|
||||
func QuoteIP(ip string) string {
|
||||
if len(ip) == 0 {
|
||||
return ip
|
||||
}
|
||||
if !strings.Contains(ip, ":") {
|
||||
return ip
|
||||
}
|
||||
if ip[0] != '[' {
|
||||
return "[" + ip + "]"
|
||||
}
|
||||
return ip
|
||||
}
|
||||
Reference in New Issue
Block a user