diff --git a/backend/backend/urls.py b/backend/backend/urls.py index d9301ff..aee1d63 100644 --- a/backend/backend/urls.py +++ b/backend/backend/urls.py @@ -9,4 +9,5 @@ router.register(r'fingerprint', views.FingerprintView, 'fingerprint') urlpatterns = [ path('admin/', admin.site.urls), path('', include(router.urls)), + path('', include('vytal.urls')), ] diff --git a/backend/vytal/urls.py b/backend/vytal/urls.py new file mode 100644 index 0000000..150ebf8 --- /dev/null +++ b/backend/vytal/urls.py @@ -0,0 +1,6 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('ip/', views.IPView, name='ip'), +] diff --git a/backend/vytal/views.py b/backend/vytal/views.py index c4b8669..808feac 100644 --- a/backend/vytal/views.py +++ b/backend/vytal/views.py @@ -1,8 +1,11 @@ -from django.shortcuts import render from rest_framework import viewsets from .serializers import FingerprintSerializer from .models import Fingerprint from django_filters.rest_framework import DjangoFilterBackend +from django.http import JsonResponse +from ipware import get_client_ip +import urllib.request +import json # Create your views here. @@ -12,3 +15,10 @@ class FingerprintView(viewsets.ModelViewSet): queryset = Fingerprint.objects.all() filter_backends = [DjangoFilterBackend] filterset_fields = ['hash'] + + +def IPView(request): + ip = get_client_ip(request) + with urllib.request.urlopen("http://ip-api.com/json/" + ip[0]) as url: + data = json.loads(url.read().decode()) + return JsonResponse(data)