26 lines
455 B
Go
26 lines
455 B
Go
package iptools
|
|
|
|
import "fmt"
|
|
|
|
func enumerateRange(name string, r *Range, startFromOne bool) []LeaseInfo {
|
|
start := r.Start
|
|
cur := start
|
|
lenfmt := fmt.Sprintf("%%s%%0%dd", len(fmt.Sprintf("%d", r.numHosts())))
|
|
i := 0
|
|
if startFromOne {
|
|
i++
|
|
}
|
|
leases := []LeaseInfo{}
|
|
|
|
for r.End.Compare(cur) >= 0 {
|
|
leases = append(leases, LeaseInfo{
|
|
HostName: fmt.Sprintf(lenfmt, name, i),
|
|
Addr: cur,
|
|
})
|
|
i++
|
|
cur = cur.Next()
|
|
}
|
|
|
|
return leases
|
|
}
|