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
|
||
|
}
|