mirror of
				https://github.com/TeaOSLab/EdgeCommon.git
				synced 2025-11-04 05:00:24 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			742 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			742 B
		
	
	
	
		
			Go
		
	
	
	
	
	
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
 | 
						|
}
 |