本文實例講述了python實現域名系統(DNS)正向查詢的方法。分享給大家供大家參考,具體如下:
域名系統(DNS)是一個分布式的數據庫,主要是用來把主機名換成IP地址。
DNS存在有兩大理由:
(1)可以使用戶方便記住名字,而不是純粹的IP地址;
(2)允許服務器改變IP地址,但可以使用原來的域名。
系統中最基本的查詢為正向查詢,它會根據一個主機名來查找IP地址。例如如果你想從www.example.com上下載一個web頁面,首先要尋找到IP地址。正想查詢會幫你完成這個任務,它會把一個名字翻譯成一個IP地址。
在python中定義了一個函數socket.getaddrinfo(),用來完成這種正向查詢。它是這樣定義的:
getaddrinfo(host, port[,family[, sockettype[, proto[, flags]]]])
host參數就是想尋找的域名,而其他的參數只有在你想把結果直接傳遞給socket.socket()或socket.connect()時才會用到。
下面是正向查詢的小例子:
import sys, socketresult = socket.getaddrinfo(sys.argv[1], None, 0, socket.SOCK_STREAM)counter = 0;for item in result: print "%-2d: %s" % (counter, item[4]) counter += 1
運行結果:




















