code: def get_nets_jpnic(self, response):
          
  
          nets = []
  
          # Iterate through all of the networks found, storing the CIDR value
          # and the start and end positions.
          for match in re.finditer(
                  r'^.*?(\[Network Number\])[^\S\n]+.+?>(?P<val>.+?)</A>$',
                  response,
                  re.MULTILINE
          ):
  
              try:
  
                  net = copy.deepcopy(BASE_NET)
                  tmp = ip_network(match.group(2))
  
                  try:  # pragma: no cover
                      network_address = tmp.network_address
                  except AttributeError:  # pragma: no cover
                      network_address = tmp.ip
                      pass
  
                  try:  # pragma: no cover
                      broadcast_address = tmp.broadcast_address
                  except AttributeError:  # pragma: no cover
                      broadcast_address = tmp.broadcast
                      pass
  
                  net['range'] = '{0} - {1}'.format(
                      network_address + 1, broadcast_address
                  )
  
                  cidr = ip_network(match.group(2).strip()).__str__()
  
                  net['cidr'] = cidr
                  net['start'] = match.start()
                  net['end'] = match.end()
                  nets.append(net)
  
              except (ValueError, TypeError):
  
                  pass
  
          return nets
docs: The function for parsing network blocks from jpnic whois data.
  
          Args:
              response (:obj:`str`): The response from the jpnic server.
  
          Returns:
              list of dict: Mapping of networks with start and end positions.
  
              ::
  
                  [{
                      'cidr' (str) - The network routing block
                      'start' (int) - The starting point of the network
                      'end' (int) - The endpoint point of the network
                  }]