mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #345 in YUNIONIO/onecloud from ~ZHOUYOUSONG/onecloud:bugfix/yousong-dep-2.3.0 to release/2.3.0
* commit '589ad4b077e73ff4d9acfa0823c28eadefa27fc4': dep: fix matching ip4addr, ip6addr, ip4cidr
This commit is contained in:
Generated
+2
-2
@@ -1254,7 +1254,7 @@
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:201bff9d99a538dd71fd8e55bbbfda8a301fd89676d0668a2cedc574e1aeaa03"
|
||||
digest = "1:2dd5cfa0e15bc1351229c0be3b09b0b7fe47d23e99d19edfba5b2402ddb1cf7b"
|
||||
name = "yunion.io/x/pkg"
|
||||
packages = [
|
||||
"gotypes",
|
||||
@@ -1288,7 +1288,7 @@
|
||||
"utils",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "122c7d4ce76b4611b63d86af8e9bb2610ab55c20"
|
||||
revision = "194153d51e1c1bd8a3b9545ee0bc1504ddcdcb4d"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
|
||||
+13
-10
@@ -1,7 +1,9 @@
|
||||
package regutils
|
||||
|
||||
import (
|
||||
"net"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var FUNCTION_REG *regexp.Regexp
|
||||
@@ -11,9 +13,6 @@ var INTEGER_REG *regexp.Regexp
|
||||
var FLOAT_REG *regexp.Regexp
|
||||
var MACADDR_REG *regexp.Regexp
|
||||
var COMPACT_MACADDR_REG *regexp.Regexp
|
||||
var IPADDR_REG_PATTERN *regexp.Regexp
|
||||
var IP6ADDR_REG *regexp.Regexp
|
||||
var CIDR_REG_PATTERN *regexp.Regexp
|
||||
var NSPTR_REG *regexp.Regexp
|
||||
var NAME_REG *regexp.Regexp
|
||||
var DOMAINNAME_REG *regexp.Regexp
|
||||
@@ -43,9 +42,6 @@ func init() {
|
||||
FLOAT_REG = regexp.MustCompile(`^\d+(\.\d*)?$`)
|
||||
MACADDR_REG = regexp.MustCompile(`^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$`)
|
||||
COMPACT_MACADDR_REG = regexp.MustCompile(`^[0-9a-fA-F]{12}$`)
|
||||
IPADDR_REG_PATTERN = regexp.MustCompile(`^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$`)
|
||||
CIDR_REG_PATTERN = regexp.MustCompile(`^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(\/\d{1,2})?$`)
|
||||
IP6ADDR_REG = regexp.MustCompile(`^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}))|:)))(%.+)?\s*$`)
|
||||
NSPTR_REG = regexp.MustCompile(`^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\.in-addr\.arpa$`)
|
||||
NAME_REG = regexp.MustCompile(`^[a-zA-Z][a-zA-Z0-9._@-]*$`)
|
||||
DOMAINNAME_REG = regexp.MustCompile(`^[a-zA-Z0-9-.]+$`)
|
||||
@@ -97,19 +93,26 @@ func MatchCompactMacAddr(str string) bool {
|
||||
}
|
||||
|
||||
func MatchIP4Addr(str string) bool {
|
||||
return IPADDR_REG_PATTERN.MatchString(str)
|
||||
ip := net.ParseIP(str)
|
||||
return ip != nil && !strings.Contains(str, ":")
|
||||
}
|
||||
|
||||
func MatchCIDR(str string) bool {
|
||||
return CIDR_REG_PATTERN.MatchString(str)
|
||||
ip, _, err := net.ParseCIDR(str)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
return ip != nil && !strings.Contains(str, ":")
|
||||
}
|
||||
|
||||
func MatchIP6Addr(str string) bool {
|
||||
return IP6ADDR_REG.MatchString(str)
|
||||
ip := net.ParseIP(str)
|
||||
return ip != nil && strings.Contains(str, ":")
|
||||
}
|
||||
|
||||
func MatchIPAddr(str string) bool {
|
||||
return MatchIP4Addr(str) || MatchIP6Addr(str)
|
||||
ip := net.ParseIP(str)
|
||||
return ip != nil
|
||||
}
|
||||
|
||||
func MatchPtr(str string) bool {
|
||||
|
||||
Reference in New Issue
Block a user