Python의 DNS 조회

Dr. Muhammad Abdullah 2023년6월21일
  1. DNS란?
  2. DNS 조회
  3. Python의 DNS 조회
Python의 DNS 조회

이 기사에서는 DNS 및 DNS 조회의 개념에 대해 설명합니다. 그런 다음 Python을 사용하여 DNS 조회 방법에 대해 설명합니다.

DNS란?

DNS(도메인 이름 시스템)는 도메인 이름을 공용 IP 주소로 변환합니다. DNS 서버는 웹사이트의 도메인 이름을 해당 웹사이트 호스트 서버의 공용 IP로 변환합니다.

DNS 조회

DNS 조회는 사용자가 웹 사이트 도메인 이름에 도달하거나 공용 IP에 대해 도메인 이름을 찾을 때마다 모든 웹 사이트의 공용 IP 찾기를 시작하는 프로세스입니다.

DNS 조회에는 두 가지 유형이 있습니다.

  1. 정방향 DNS 조회

    정방향 DNS 조회는 정방향 DNS라고도 합니다. DNS 서버를 사용하여 도메인 이름을 확인하여 모든 도메인의 공인 IP를 찾는 데 사용되는 프로세스입니다.

  2. 역방향 DNS 조회

    역방향 DNS 조회는 순방향 DNS 조회와 반대로 작동합니다. 공인 IP 주소를 기준으로 도메인 이름을 찾는 과정입니다.

DNS 조회 명령

nslookup 명령은 호스트 이름에 대해 IP 주소 또는 도메인 이름 시스템을 찾습니다. 예를 들어 nslookup google.com 출력은 아래와 같습니다.

nslookup

nslookup google.com 명령은 도메인 이름 시스템과 google.com 호스트의 공용 IP를 표시합니다.

Python의 DNS 조회

다음 코드를 사용하여 Python에서 모든 도메인의 호스트 이름 또는 공용 IP를 찾을 수 있습니다.

import socket

ip_addr = socket.gethostbyname("www.google.com")
print(ip_addr)

Python 라이브러리의 소켓은 서버 클라이언트 프로그램을 포함하여 네트워크 기반 응용 프로그램을 개발하기 위한 다양한 기능과 방법을 제공합니다. gethostbyname 기능은 호스트 이름의 공용 IP 주소를 찾는 데 사용됩니다.

gethostbyname은 운영 체제의 구성된 규칙을 고려하지 않고 호스트 이름의 IP 주소만 반환합니다. 그러나 운영 체제의 모든 구성된 규칙으로 호스트 이름 정보를 찾을 수 있습니다.

운영 체제의 구성된 규칙을 무시하지 않고 주소 정보를 찾는 데 사용되는 다음 코드를 고려하십시오.

import socket

print(socket.getaddrinfo("www.google.com", 80))

Python 소켓 라이브러리의 getaddrinfo 기능은 운영 체제 구성 규칙을 고려하여 호스트 이름과 관련된 정보를 가져오는 데 사용됩니다.

getaddrinfo 함수는 family, socktype, protosockaddr 5개의 요소 목록을 반환합니다.

family, socktypeprotosocket().canonname과 함께 사용할 수 있는 정수이며 호스트의 표준 이름인 sockaddr을 나타내는 문자열은 주소와 포트의 두 요소가 있는 튜플입니다.