from django.utils import timezone from users.models import Player tracking = False def get_ip(request): x_forwarded_for = request.META.get("HTTP_X_FORWARDED_FOR") if x_forwarded_for: ip = x_forwarded_for.split(",")[-1].strip() else: ip = request.META.get("REMOTE_ADDR") return ip # Create a Player object for a User def init_player(request): if not request.user.is_authenticated: return player = Player.objects.filter(user=request.user).first() if player: return ip = get_ip(request=request) player = Player(user=request.user, creationIP=ip, latestIP=ip) player.save() # Update activity timestamp and IP def tag_player(request): if not tracking: return if not request.user.is_authenticated: return player = Player.objects.filter(user=request.user).first() if not player: init_player(request=request) player.latestActivity = timezone.now() player.latestIP = get_ip(request=request) player.save()