Skip to content

Instantly share code, notes, and snippets.

@xin053
Created September 28, 2022 05:50
Show Gist options
  • Save xin053/c6b99466db9394601c02baaaf0c33b10 to your computer and use it in GitHub Desktop.
Save xin053/c6b99466db9394601c02baaaf0c33b10 to your computer and use it in GitHub Desktop.
[go net]
// 获取 cidr 所有 ip
package main
import (
"net/netip"
)
func Hosts(cidr string) ([]netip.Addr, error) {
prefix, err := netip.ParsePrefix(cidr)
if err != nil {
panic(err)
}
var ips []netip.Addr
for addr := prefix.Addr(); prefix.Contains(addr); addr = addr.Next() {
ips = append(ips, addr)
}
if len(ips) < 2 {
return ips, nil
}
return ips[1 : len(ips)-1], nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment