summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoyalsoldier <[email protected]>2020-04-03 00:07:17 +0800
committerloyalsoldier <[email protected]>2020-04-03 09:40:40 +0800
commita58fac93a3b70dff226cfcc2c0118f7ddc76f2b3 (patch)
tree9e47051a3d1413aedae6cd1f2b40155564a4109e
parent3f95d67f2b8e97d3b4e1468330153afd6fa8cf3d (diff)
Validate IPv4 CIDR
-rw-r--r--main.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/main.go b/main.go
index f0aa5c20..31b5e163 100644
--- a/main.go
+++ b/main.go
@@ -13,6 +13,7 @@ import (
"io/ioutil"
"net/http"
"os"
+ "regexp"
"strings"
"github.com/golang/protobuf/proto"
@@ -103,7 +104,12 @@ func getCNIPv4Cidr(url string) (cnIPv4CidrList []string, err error) {
return nil, err
}
- cnIPv4CidrList = strings.Split(string(body), "\n")
+ reg := regexp.MustCompile(`(\d+\.){3}\d+\/\d+`)
+ matchList := reg.FindAllStringSubmatch(string(body), -1)
+
+ for _, match := range matchList {
+ cnIPv4CidrList = append(cnIPv4CidrList, match[0])
+ }
fmt.Println("The length of cnIPv4CIDRList is", len(cnIPv4CidrList))
return cnIPv4CidrList, nil
@@ -121,6 +127,7 @@ func changeCNIPv4Cidr(url string, m map[string]string, list map[string][]*router
}
for _, cnIPv4Cidr := range cnIPv4CidrList {
+ fmt.Println("Processing CN IPv4 CIDR:", cnIPv4Cidr)
cnIPv4Cidr, err := conf.ParseIP(strings.TrimSpace(cnIPv4Cidr))
if err != nil {
return err