Added ip view

This commit is contained in:
z0ccc 2021-07-27 18:06:51 -04:00
parent d9004280f6
commit e7af71646b
3 changed files with 18 additions and 1 deletions

View file

@ -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')),
]

6
backend/vytal/urls.py Normal file
View file

@ -0,0 +1,6 @@
from django.urls import path
from . import views
urlpatterns = [
path('ip/', views.IPView, name='ip'),
]

View file

@ -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)