정의
도메인 이름을 IP 주소로 바꿔주는 시스템입니다.
사용자(도메인) - DNS(번역) - 컴퓨터(IP)
예) www.naver.com > 999.999.999
레코드 종류
정의
python에서 DNS 관련 작업을 처리할 수 있게 해주는 라이브러리 입니다.
설치
pip install dnspython
기본 예제(IP 주소 얻기)
resolve(domain, type)
result의 값은 to_text()를 사용해서 사람이 읽기 쉽게 값을 반환
import dns.resolver
result = dns.resolver.resolve('google.com', 'A')
for index in result:
print(index.to_text())
142.250.196.206
time.time()은 현재 시간을 초 단위로 변환합니다.import dns.resolver, time
start_time = time.time() # 시작 시간
approve = dns.resolver.resolve('google.com', 'A')
end_time = time.time() # 종료 시간
response = round((end_time - start_time) * 1000, 2) #
print(f"{response} ms")
3.97 ms
import dns.resolver, time
DNS_Server = {
"Google" : "8.8.8.8",
"KISA" : "203.248.252.2",
"KT" : "168.126.63.1",
"SKB" : "219.250.36.130",
"LGU+" : "164.124.101.2",
"Kakao" : "203.248.252.2"
}
domain = input("도메인을 입력하세요: ")
approve = {}
result = {}
for name, ip in DNS_Server.items():
tester = dns.resolver.Resolver()
tester.nameservers = [ip]
start_time = time.time()
approve = tester.resolve(domain, 'A')
end_time = time.time()
answer = round((end_time - start_time) * 1000, 2)
result[name] = answer
for name, time_ms in result.items():
print(f"{name} : {time_ms}")
도메인을 입력하세요: naver.com Google : 35.64 KISA : 3.9 KT : 2.84 SKB : 2.58 LGU+ : 3.85 Kakao : 3.26
from urllib.parse import urlparse는 URL을 구조적으로 분해해주는 파이썬 함수
full_path가 프로토콜 없이 입력할 수도 있어 정상 URL로 만들어줍니다.
netloc은 URL에서 도메인만 가져옵니다.
예) velog.io/@user/post > netloc = velog.io
from urllib.parse import urlparse
full_path = input("도메인을 입력하세요: )
parsed = urlparse(full_path
if full_path.startswith("http")
else "https://" + full_path)
domain = parsed.netloc
dnspython은 대학교 수강신청, 티켓팅 등 응답시간이 빠를 수록 유리한 상황에서 유용하게 사용할 수 있다고 생각합니다.
피드백은 댓글로 남겨주세요.
유익한 지식입니다.