code: def _split_addr(addr):
      
      e = ValueError('Invalid IP address and port pair: "%s"' % addr)
      pair = addr.rsplit(':', 1)
      if len(pair) != 2:
          raise e
  
      addr, port = pair
      if addr.startswith('[') and addr.endswith(']'):
          addr = addr.lstrip('[').rstrip(']')
          if not ip.valid_ipv6(addr):
              raise e
      elif not ip.valid_ipv4(addr):
          raise e
  
      return addr, int(port, 0)
docs: Splits a str of IP address and port pair into (host, port).
  
      Example::
  
          >>> _split_addr('127.0.0.1:6653')
          ('127.0.0.1', 6653)
          >>> _split_addr('[::1]:6653')
          ('::1', 6653)
  
      Raises ValueError if invalid format.
  
      :param addr: A pair of IP address and port.
      :return: IP address and port