<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _download_extract_archive(self, url):
 """ Returns dict with 2 extracted filenames """

        self.logger.info('Downloading zipfile from ipgeobase.ru...')
        temp_dir = tempfile.mkdtemp()
        archive = zipfile.ZipFile(self._download_url_to_string(url))
        self.logger.info('Extracting files...')
        file_cities = archive.extract(settings.IPGEOBASE_CITIES_FILENAME, path=temp_dir)
        file_cidr = archive.extract(settings.IPGEOBASE_CIDR_FILENAME, path=temp_dir)
        return {'cities': file_cities, 'cidr': file_cidr}