diff options
Diffstat (limited to 'src/leap/util/geo.py')
| -rw-r--r-- | src/leap/util/geo.py | 32 | 
1 files changed, 32 insertions, 0 deletions
diff --git a/src/leap/util/geo.py b/src/leap/util/geo.py new file mode 100644 index 00000000..54b29596 --- /dev/null +++ b/src/leap/util/geo.py @@ -0,0 +1,32 @@ +""" +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 "-"  | 
