docs: def ipv4_public(self, network=False, address_class=None):
          """
          Returns a public IPv4 excluding private blocks.
  
          :param network: Network address
          :param address_class: IPv4 address class (a, b, or c)
          :returns: Public IPv4
          """
          # compute public networks
          public_networks = [_IPv4Constants._network_classes[
              address_class or self.ipv4_network_class()
          ]]
  
          # exclude private and excluded special networks
          public_networks = self._exclude_ipv4_networks(
              public_networks,
              _IPv4Constants._private_networks +
              _IPv4Constants._excluded_networks,
          )
  
          # choose random public network from the list
          public_network = self.generator.random.choice(public_networks)
  
          return self._random_ipv4_address_from_subnet(public_network, network)