Source code for api_searcher.views.dns

from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView

from api_searcher.dns.dns_searcher import DNSSearcher, DNSSearcherError


[docs]class DNSSearcherView(APIView): """Widok Django który zwraca informacje o rekordach DNS dla dane hosta."""
[docs] def get(self, request, host): """ Metoda zwracajace informacje o rekordach DNS na podstawie zapytania GET HTTP użytkownika. :param request: obiekt dla widoku Django z informacjami od użytkownika :param host: fully qualified domain name :return: dns data :example: host='renmich.faculty.wmi.amu.edu.pl' """ try: data = DNSSearcher(host).get_data() return Response({"dns_data" : data}) except DNSSearcherError as ex: return Response({"error": f"Host doesn't exists", "details": str(ex)}, status=status.HTTP_400_BAD_REQUEST) except BaseException as ex: return Response({"error": f"Unable to get DNS record data for host={host}.", "details": str(ex)}, status=status.HTTP_404_NOT_FOUND)