iprange is a library you can use to parse IPv4 addresses from a string in the nmap format.
It takes a string, and returns a list of Min-Max pairs, which can then be expanded and normalized automatically by the package.
iprange supports the following formats:
10.0.0.110.0.0.0/2410.0.0.*10.0.0.1-1010.0.0.1, 10.0.0.5-10, 192.168.1.*, 192.168.10.0/24
package main
import (
"log"
"github.com/malfunkt/iprange"
)
func main() {
list, err := iprange.ParseList("10.0.0.1, 10.0.0.5-10, 192.168.1.*, 192.168.10.0/24")
if err != nil {
log.Printf("error: %s", err)
}
log.Printf("%+v", list)
rng := list.Expand()
log.Printf("%s", rng)
}