def record_by_addr(self, addr):
if self._databaseType not in const.CITY_EDITIONS:<EOL><INDENT>message = '<STR_LIT>'<EOL>raise GeoIPError(message)<EOL><DEDENT>ipnum = util.ip2long(addr)<EOL>rec = self._get_record(ipnum)<EOL>if not rec:<EOL><INDENT>return None<EOL><DEDENT>return rec<EOL>
Returns dictionary with city data containing `country_code`, `country_name`,
`region`, `city`, `postal_code`, `latitude`, `longitude`, `dma_code`,
`metro_code`, `area_code`, `region_code` and `time_zone`.

:arg addr: IP address (e.g. 203.0.113.30)