python이 DNS 정방향 조회, 역방향 조회를 실현하는 예
www.baidu를 참조하십시오.com 예
(1) 컴퓨터가 로컬 도메인 이름 서버에 분석 www.baidu를 보냅니다.com의 요청 (2) 로컬 도메인 이름 서버가 요청을 받은 후 로컬 캐시를 조회하고 검색 결과를 직접 되돌려줍니다. 이 기록이 없으면 로컬 도메인 이름 서버는 www.baidu를 사용합니다.com의 요청을 루트 도메인 서버에 보냅니다. (3) 루트 도메인 서버에서 요청을 받은 후.com 도메인의 서버 IP 주소는 로컬 도메인 이름 서버 (4) 로컬 도메인 이름 서버 연결로 돌아갑니다.com 서버, 도메인 이름 확인 요청 www.baidu.com, .com 서버에서 baidu를.com 서버의 IP 주소는 로컬 DNS 서버로 돌아갑니다. (5) 로컬 DNS 서버는baidu로 돌아갑니다.com 서버에서 도메인 이름 확인 요청,baidu를 보냅니다.com 서버는 www.baidu.com의 IP 주소를 로컬 DNS 서버에 반환 (6) 로컬 DNS 서버는 www.baidu.com의 IP 주소를 컴퓨터로 되돌려줍니다.
2. 도메인 이름과 IP 주소의 관계:
하나의 도메인 이름은 여러 개의 IP 주소에 대응하지만, 같은 시간에 하나의 도메인 이름은 하나의 IP 주소만 있을 수 있고, 하나의 IP 주소는 여러 개의 도메인 이름에 대응할 수 있다.
3. DNS 조회
Python은 DNS의 정방향 및 역방향 질의를 수행할 수 있습니다.다음은 정방향 조회 코드입니다.
#!/usr/bin/env python
import sys,socket
result=socket.getaddrinfo(sys,argv[1],None)
print result[0][4]
도메인 이름에 여러 개의 IP 주소가 있을 수 있기 때문에 상기 프로그램이 두 번 실행한 결과는 다를 수 있습니다.
실행 프로그램:
./test.py www.baidu.com
결과는 다음과 같습니다.
(‘111.13.100.91',80)
역방향 질의:
#!/usr/bin/env python
import sys,socket
try:
result=socket.gethostbyaddr(sys.argv[1])
print "hostname is "+result[0]
except socket.herror,e:
print "can't look up"
실행 프로그램
./test2 127.0.0.1
결과는 다음과 같습니다.
hostname is localhost
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.