无论如何从CIDR范围中检索最大数量的IPv6?目前我有这段代码:
package main
import (
"fmt"
"log"
"net"
)
func main() {
ip, ipnet, err := net.ParseCIDR("2001:200:905::/49")
var ips []string
if err != nil {
log.Fatal(err)
}
for ip := ip.Mask(ipnet.Mask); ipnet.Contains(ip); inc(ip) {
ips = append(ips, ip.String())
}
fmt.Println(len(ips))
}
func inc(ip net.IP) {
for j := len(ip)-1; j>=0; j-- {
ip[j]++
if ip[j] > 0 {
break
}
}
}
但是这个过程运行得很慢。有没有有效的方法来检索IP地址的总数?