# HG changeset patch # User Dennis Fink # Date 2014-12-11 11:31:51 # Node ID e7a2c084dcd02827d2a162404ba69b4ab97d0976 # Parent 64df77fdc3307bfa1d4776ccc97ae9a4d5c32b31 Fixed country and added ipv6 support diff --git a/ennstatus/api/functions.py b/ennstatus/api/functions.py --- a/ennstatus/api/functions.py +++ b/ennstatus/api/functions.py @@ -17,7 +17,7 @@ FINGERPRINT_REGEX = re.compile(r'^[A-Z0- DATE_FORMAT = '%d-%m-%Y %H:%M:%S' gi4 = pygeoip.GeoIP('/usr/share/GeoIP/GeoIP.dat', pygeoip.MEMORY_CACHE) - +gi6 = pygeoip.GeoIP('/usr/share/GeoIP/GeoIPv6.dat', pygeoip.MEMORY_CACHE) mail_cache = dict() @@ -95,7 +95,12 @@ def update_server(server, ip): server['last_updated'] = datetime.utcnow().strftime(DATE_FORMAT) server['server_status'] = 'Online' - server['country'] = gi4.country_name_by_addr(ip) + + if ip.version == 4: + server['country'] = gi4.country_name_by_addr(str(ip)) + elif ip.verion == 6: + server['country'] = gi6.country_name_by_addr(str(ip)) + server_name = server['server_name'] if server['server_type'] == 'Bridge': @@ -109,12 +114,12 @@ def update_server(server, ip): if key in server: del server[key] - if isinstance(ip, ipaddress.IPv4Address): + if ip.version == 4: if 'ip' not in server: - server['ip'] = ip - elif isinstance(ip, ipaddress.IPv6Address): + server['ip'] = str(ip) + elif ip.version == 6: if 'ip6' not in server: - server['ip6'] = ip + server['ip6'] = str(ip) try: filename = ''.join(['data/', server_name.lower(), '.json'])