1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
package main
import ( "net" "fmt" )
func (cidr string) ([]string, error) { ip, ipnet, err := net.ParseCIDR(cidr) if err != nil { return nil, err }
var ips []string for ip := ip.Mask(ipnet.Mask); ipnet.Contains(ip); inc(ip) { ips = append(ips, ip.String()) } return ips[1 : len(ips)-1], nil }
func inc(ip net.IP) { for j := len(ip) - 1; j >= 0; j-- { ip[j]++ if ip[j] > 0 { break } } }
func main() { hosts, _ := hosts("192.168.11.9/27") for _, ip := range hosts { fmt.Println("sent: " + ip) } }
|
近期评论