python實(shí)現(xiàn)DNS正向查詢、反向查詢的例子
1.DNS查詢過程:
以查詢 www.baidu.com為例
(1)電腦向本地域名服務(wù)器發(fā)送解析www.baidu.com的請求
(2)本地域名服務(wù)器收到請求后,先查詢本地的緩存,如果找到直接返回查詢結(jié)果,如果沒有該記錄,本地域名服務(wù)器把www.baidu.com的請求發(fā)送給根域名服務(wù)器
(3)根域名服務(wù)器收到請求后,把.com域的服務(wù)器IP地址返回給本地域名服務(wù)器
(4)本地域名服務(wù)器連接.com服務(wù)器,向其請求解析域名www.baidu.com, .com服務(wù)器把baidu.com服務(wù)器的IP地址返回給本地DNS服務(wù)器
(5)本地DNS服務(wù)器向baidu.com服務(wù)器發(fā)送解析域名請求,baidu.com服務(wù)器將www.baidu.com的IP地址返回給本地DNS服務(wù)器
(6)本地DNS服務(wù)器把www.baidu.com的IP地址返回給電腦。
2.域名和IP地址的對(duì)應(yīng)關(guān)系:
一個(gè)域名可以對(duì)應(yīng)多個(gè)IP地址,但在同一時(shí)刻,一個(gè)域名只能有一個(gè)IP地址,一個(gè)IP地址可以對(duì)應(yīng)多個(gè)域名。
3.查詢DNS
Python可以實(shí)現(xiàn)DNS的正向和反向查詢。下面是正向查詢的代碼:
#!/usr/bin/env python
import sys,socket
result=socket.getaddrinfo(sys,argv[1],None)
print result[0][4]
因?yàn)橐粋€(gè)域名可以有多個(gè)IP地址,所以上述程序兩次運(yùn)行的結(jié)果可能會(huì)不同。
運(yùn)行程序 :
結(jié)果為 :
反向查詢:
#!/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"
運(yùn)行程序
結(jié)果為:
- Python模塊域名dnspython解析
- python批量處理多DNS多域名的nslookup解析實(shí)現(xiàn)
- 利用Python+阿里云實(shí)現(xiàn)DDNS動(dòng)態(tài)域名解析的方法
- Python爬蟲DNS解析緩存方法實(shí)例分析
- Python實(shí)現(xiàn)的簡單dns查詢功能示例
- python實(shí)現(xiàn)域名系統(tǒng)(DNS)正向查詢的方法
- Python中使用scapy模擬數(shù)據(jù)包實(shí)現(xiàn)arp攻擊、dns放大攻擊例子
- Python寫的一個(gè)簡單DNS服務(wù)器實(shí)例
- Python DNS查詢放大攻擊實(shí)現(xiàn)原理解析
相關(guān)文章
使用matplotlib繪制并排柱狀圖的實(shí)戰(zhàn)案例
堆積柱狀圖有堆積柱狀圖的好處,比如說我們可以很方便地看到多分類總和的趨勢,下面這篇文章主要給大家介紹了關(guān)于使用matplotlib繪制并排柱狀圖的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python如何實(shí)現(xiàn)強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換
這篇文章主要介紹了Python如何實(shí)現(xiàn)強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
pycharm 設(shè)置項(xiàng)目的根目錄教程
今天小編就為大家分享一篇pycharm 設(shè)置項(xiàng)目的根目錄教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02

