Пример #1
0
    def get_time_zone_by_ip(self, request):
        '''
        http://packages.python.org/pygeoip/
        '''

        gi = GeoIP(settings.GEOIP_PATH + settings.GEOIP_CITY, pygeoip.STANDARD)
        client_ip = request.get_host().split(':')[0]

        try:
            time_zone = gi.time_zone_by_addr(client_ip)
        except:
            return None
        else:
            if not time_zone:
                client_ip = request.META.get('REMOTE_ADDR')
                time_zone = gi.time_zone_by_addr(client_ip)

        return time_zone
Пример #2
0
 def process_request(self, request):
     if 'django_timezone' in request.session:
         tzname = request.session['django_timezone']
         timezone.activate(pytz.timezone(tzname))
     else:
         ip = get_real_ip(request)
         if ip is not None:
             gi = GeoIP(settings.GEOIP_DATABASE, MEMORY_CACHE)
             tzname = gi.time_zone_by_addr(ip)
             if tzname is not None:
                 request.session['django_timezone'] = tzname
                 timezone.activate(pytz.timezone(tzname))
             else:
                 timezone.deactivate()