package main
import (
"fmt"
"net"
)
func generateIPList(startIP, endIP string) ([]string, error) {
start := net.ParseIP(startIP)
end := net.ParseIP(endIP)
if start == nil || end == nil {
return nil, fmt.Errorf("invalid IP format")
}
var ips []string
for ip := start; !ip.Equal(end); ip = incIP(ip) {
ips = append(ips, ip.String())
}
ips = append(ips, end.String())
return ips, nil
}
func incIP(ip net.IP) net.IP {
inc := make(net.IP, len(ip))
copy(inc, ip)
for i := len(inc) - 1; i >= 0; i-- {
inc[i]++
if inc[i] != 0 {
break
}
}
return inc
}
func main() {
startIP := "192.168.1.1"
endIP := "192.168.1.120"
ipList, err := generateIPList(startIP, endIP)
if err != nil {
fmt.Println("Error generating IP list:", err)
return
}
for _, ip := range ipList {
fmt.Println(ip)
}
}