docs: def subnet_range(ip_net, cidr):
      """
      Function to return a subnet range value from a IP address and CIDR pair
      Args:
          ip_net: Unicast or Multicast IP address or subnet in the following format 192.168.1.1, 239.1.1.1
          cidr: CIDR value of 1 to 32
  
      Returns: returns a dictionary of info
  
      """
      subnets_dict = dict()
      subnet = whole_subnet_maker(ip_net, cidr)
      subnets_dict['IP'] = ip_net
      subnets_dict['NET'] = subnet
      subnets_dict['CIDR'] = '%s/%s' % (whole_subnet_maker(ip_net, cidr), cidr)
      if int(cidr) >= 24:
          subnet_split = subnet.split('.')
          first_ip = int(subnet_split[3]) + 1
          last_ip = (int(subnet_split[3]) + 1) + (253 - int(__mask_conversion[int(cidr)]['OCT4']))
          bcast_ip = (int(subnet_split[3]) + 1) + (254 - int(__mask_conversion[int(cidr)]['OCT4']))
          temp = '%s.%s.%s.' % (subnet_split[0], subnet_split[1], subnet_split[2])
          subnets_dict['RANGE'] = '%s%i to %s%i' % (temp, first_ip, temp, last_ip)
          subnets_dict['BCAST'] = '%s%i' % (temp, bcast_ip)
          subnets_dict['MASK'] = __mask_conversion[int(cidr)]['MASK']
          subnets_dict['INVMASK'] = __mask_conversion[int(cidr)]['INVMASK']
          subnets_dict['CIDRVAL'] = __mask_conversion[int(cidr)]['CIDR']
      elif int(cidr) >= 16:
          subnet_split = subnet.split('.')
          first_ip = int(subnet_split[2])
          last_ip = (int(subnet_split[2]) + 1) + (254 - int(__mask_conversion[int(cidr)]['OCT3']))
          bcast_ip = (int(subnet_split[2]) + 1) + (254 - int(__mask_conversion[int(cidr)]['OCT3']))
          temp = '%s.%s.' % (subnet_split[0], subnet_split[1])
          subnets_dict['RANGE'] = '%s%i.1 to %s%i.254' % (temp, first_ip, temp, last_ip)
          subnets_dict['BCAST'] = '%s%i.255' % (temp, bcast_ip)
          subnets_dict['MASK'] = __mask_conversion[int(cidr)]['MASK']
          subnets_dict['INVMASK'] = __mask_conversion[int(cidr)]['INVMASK']
          subnets_dict['CIDRVAL'] = __mask_conversion[int(cidr)]['CIDR']
      elif int(cidr) >= 8:
          subnet_split = subnet.split('.')
          first_ip = int(subnet_split[1])
          last_ip = (int(subnet_split[1]) + 1) + (254 - int(__mask_conversion[int(cidr)]['OCT2']))
          bcast_ip = (int(subnet_split[1]) + 1) + (254 - int(__mask_conversion[int(cidr)]['OCT2']))
          temp = '%s.' % (subnet_split[0],)
          subnets_dict['RANGE'] = '%s%i.0.1 to %s%i.255.254' % (temp, first_ip, temp, last_ip)
          subnets_dict['BCAST'] = '%s%i.255.255' % (temp, bcast_ip)
          subnets_dict['MASK'] = __mask_conversion[int(cidr)]['MASK']
          subnets_dict['INVMASK'] = __mask_conversion[int(cidr)]['INVMASK']
          subnets_dict['CIDRVAL'] = __mask_conversion[int(cidr)]['CIDR']
      elif int(cidr) >= 1:
          subnet_split = subnet.split('.')
          first_ip = int(subnet_split[0])
          last_ip = (int(subnet_split[0]) + 1) + (254 - int(__mask_conversion[int(cidr)]['OCT1']))
          bcast_ip = (int(subnet_split[0]) + 1) + (254 - int(__mask_conversion[int(cidr)]['OCT1']))
          subnets_dict['RANGE'] = '%i.0.0.1 to %i.255.255.254' % (first_ip, last_ip)
          subnets_dict['BCAST'] = '%i.255.255.255' % (bcast_ip,)
          subnets_dict['MASK'] = __mask_conversion[int(cidr)]['MASK']
          subnets_dict['INVMASK'] = __mask_conversion[int(cidr)]['INVMASK']
          subnets_dict['CIDRVAL'] = __mask_conversion[int(cidr)]['CIDR']
      return subnets_dict