Python-DNS 조회
사람이 읽을 수있는 형식이나 단어로 변환 된 IP 주소는 도메인 이름으로 알려집니다. 도메인 이름을 IP 주소로 변환하는 것은 Python 모듈에서 관리합니다.dnspython이 모듈은 CNAME 및 MX 레코드를 찾는 방법도 제공합니다.
'A'레코드 찾기
아래 프로그램에서 dns.resolver 메서드를 사용하여 도메인의 IP 주소를 찾습니다. 일반적으로 IP 주소와 도메인 이름 간의 이러한 매핑을 'A'레코드라고도합니다.
import dnspython as dns
import dns.resolver
result = dns.resolver.query('tutorialspoint.com', 'A')
for ipval in result:
print('IP', ipval.to_text())
위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.
('IP', u'94.130.81.180')
CNAME 값 찾기
정식 이름 레코드라고도하는 CNAME 레코드는 도메인 이름을 다른 도메인의 별칭으로 매핑하는 데 사용되는 DNS (Domain Name System)의 레코드 유형입니다. CNAME 레코드는 항상 다른 도메인 이름을 가리키고 IP 주소를 직접 가리 키지 않습니다. 아래 쿼리 메서드에서 CNAME 값을 가져 오기 위해 CNAME 매개 변수를 지정합니다.
import dnspython as dns
import dns.resolver
result = dns.resolver.query('mail.google.com', 'CNAME')
for cnameval in result:
print ' cname target address:', cnameval.target
위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.
cname target address: googlemail.l.google.com.
MX 레코드 찾기
메일 교환기 레코드라고도하는 MX 레코드는받는 사람의 도메인을 대신하여 전자 메일 메시지를 수락하는 메일 서버를 지정하는 도메인 이름 시스템의 리소스 레코드입니다. 또한 여러 메일 서버를 사용할 수있는 경우 메일 배달 우선 순위를 지정하는 데 사용되는 기본 설정 값을 설정합니다. 위의 프로그램과 유사하게 쿼리 메소드에서 'MX'매개 변수를 사용하여 MX 레코드의 값을 찾을 수 있습니다.
result = dns.resolver.query('mail.google.com', 'MX')
for exdata in result:
print ' MX Record:', exdata.exchange.text()
위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.
MX Record: ASPMX.L.GOOGLE.COM.
MX Record: ALT1.ASPMX.L.GOOGLE.COM.
MX Record: ALT2.ASPMX.L.GOOGLE.COM.
위는 샘플 출력이며 정확한 출력은 아닙니다.