code: func NetworkRange(network *net.IPNet) (net.IP, net.IP) {
  	if network == nil {
  		return nil, nil
  	}
  
  	firstIP := network.IP.Mask(network.Mask)
  	lastIP := types.GetIPCopy(firstIP)
  	for i := 0; i < len(firstIP); i++ {
  		lastIP[i] = firstIP[i] | ^network.Mask[i]
  	}
  
  	if network.IP.To4() != nil {
  		firstIP = firstIP.To4()
  		lastIP = lastIP.To4()
  	}
  
  	return firstIP, lastIP
  }
docs: // NetworkRange calculates the first and last IP addresses in an IPNet