""" experimental geo support. not yet a feature. in debian, we rely on the (optional) geoip-database """ import os import platform from leap.util import HAS_GEOIP GEOIP = None if HAS_GEOIP: import pygeoip # we know we can :) GEOIP_PATH = None if platform.system() == "Linux": PATH = "/usr/share/GeoIP/GeoIP.dat" if os.path.isfile(PATH): GEOIP_PATH = PATH GEOIP = pygeoip.GeoIP(GEOIP_PATH, pygeoip.MEMORY_CACHE) def get_country_name(ip): if not GEOIP: return try: country = GEOIP.country_name_by_addr(ip) except pygeoip.GeoIPError: country = None return country if country else "-"