Files
PeerNotes/backend/api/utils/get_client_ip.py
Aman Tahiliani 094a8d763f Peer to Peer code along with test script (#18)
* Initial Peer service code

* Updated peer service

* Updated peer service

* Updated file service

* Updated User Ip registration

* Updated File moving function

* test

* test1 again

* new

---------

Co-authored-by: Sahej Panag <spanag3@gatech.edu>
2024-04-22 00:42:08 -04:00

38 lines
940 B
Python

from typing import Any
from django.utils import timezone
def get_client_ip(request):
x_forwarded_for = request.META.get("HTTP_X_FORWARDED_FOR")
if x_forwarded_for:
ip = x_forwarded_for.split(",")[0]
else:
ip = request.META.get("REMOTE_ADDR")
return ip
def update_user_ip(request):
user = request.user
try:
data = request.data
ip_address = data['ip']
print("Local IP found in request")
except Exception as e:
ip_address = get_client_ip(request)
print("Using public IP")
user.ip_address = ip_address
user.last_poll = timezone.now()
user.save()
class PollMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
print("Updating user last online and IP address")
update_user_ip(request)
response = self.get_response(request)
return response