新增 测速单个 IP 时可以省略 /32 子网掩码(允许和 IP 段混杂使用)
This commit is contained in:
parent
1d46334a6b
commit
85546abb23
|
@ -64,6 +64,9 @@ func loadFirstIPOfRangeFromFile(ipFile string) []net.IPAddr {
|
||||||
scanner.Split(bufio.ScanLines)
|
scanner.Split(bufio.ScanLines)
|
||||||
for scanner.Scan() {
|
for scanner.Scan() {
|
||||||
IPString := scanner.Text()
|
IPString := scanner.Text()
|
||||||
|
if !strings.Contains(IPString, "/") { // 如果不含有 / 则代表不是 IP 段,而是一个单独的 IP,因此需要加上 /32 子网掩码
|
||||||
|
IPString += "/32"
|
||||||
|
}
|
||||||
firstIP, IPRange, err := net.ParseCIDR(IPString)
|
firstIP, IPRange, err := net.ParseCIDR(IPString)
|
||||||
//fmt.Println(firstIP)
|
//fmt.Println(firstIP)
|
||||||
//fmt.Println(IPRange)
|
//fmt.Println(IPRange)
|
||||||
|
@ -71,8 +74,8 @@ func loadFirstIPOfRangeFromFile(ipFile string) []net.IPAddr {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
if !ipv6Mode { // IPv4
|
if !ipv6Mode { // IPv4
|
||||||
minIP, maxIP := getCidrIPRange(scanner.Text()) // 获取 IP 最后一段最小值和最大值
|
minIP, maxIP := getCidrIPRange(IPString) // 获取 IP 最后一段最小值和最大值
|
||||||
Mask, _ := strconv.Atoi(strings.Split(scanner.Text(), "/")[1]) // 获取子网掩码
|
Mask, _ := strconv.Atoi(strings.Split(IPString, "/")[1]) // 获取子网掩码
|
||||||
MaxIPNum := getCidrHostNum(Mask) // 根据子网掩码获取主机数量
|
MaxIPNum := getCidrHostNum(Mask) // 根据子网掩码获取主机数量
|
||||||
for IPRange.Contains(firstIP) {
|
for IPRange.Contains(firstIP) {
|
||||||
if allip { // 如果是测速全部 IP
|
if allip { // 如果是测速全部 IP
|
||||||
|
|
Loading…
Reference in New Issue