Skip to content

Commit 85546ab

Browse files
committed
新增 测速单个 IP 时可以省略 /32 子网掩码(允许和 IP 段混杂使用)
1 parent 1d46334 commit 85546ab

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

IPRangeLoader.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,19 @@ func loadFirstIPOfRangeFromFile(ipFile string) []net.IPAddr {
6464
scanner.Split(bufio.ScanLines)
6565
for scanner.Scan() {
6666
IPString := scanner.Text()
67+
if !strings.Contains(IPString, "/") { // 如果不含有 / 则代表不是 IP 段,而是一个单独的 IP,因此需要加上 /32 子网掩码
68+
IPString += "/32"
69+
}
6770
firstIP, IPRange, err := net.ParseCIDR(IPString)
6871
//fmt.Println(firstIP)
6972
//fmt.Println(IPRange)
7073
if err != nil {
7174
log.Fatal(err)
7275
}
7376
if !ipv6Mode { // IPv4
74-
minIP, maxIP := getCidrIPRange(scanner.Text()) // 获取 IP 最后一段最小值和最大值
75-
Mask, _ := strconv.Atoi(strings.Split(scanner.Text(), "/")[1]) // 获取子网掩码
76-
MaxIPNum := getCidrHostNum(Mask) // 根据子网掩码获取主机数量
77+
minIP, maxIP := getCidrIPRange(IPString) // 获取 IP 最后一段最小值和最大值
78+
Mask, _ := strconv.Atoi(strings.Split(IPString, "/")[1]) // 获取子网掩码
79+
MaxIPNum := getCidrHostNum(Mask) // 根据子网掩码获取主机数量
7780
for IPRange.Contains(firstIP) {
7881
if allip { // 如果是测速全部 IP
7982
for i := int(minIP); i <= int(maxIP); i++ { // 遍历 IP 最后一段最小值到最大值

0 commit comments

Comments
 (0)