python實現網域名稱系統 DNS 正向查詢的方法

2022-09-26 12:03:24 字數 716 閱讀 2289

網域名稱系統(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, socket

result = socket.getaddrinfo(sys.ar**[1], none, 0, socket.sock_stream)

counter = 0;

for item in result:

print "%-2d: %s" % (counter, item[4])

counter += 1

執行結果:

DNS網域名稱系統

前言 學過計算機網路的我們知道,整個 internet 網路就是乙個單一的 抽象的網路,各個主機通過全世界範圍內唯一的 32位識別符號 ip 位址來標識唯一性,很顯然,在網際網路中它們只能通過 ipip ip202.108.22.5 然而,當我們想要訪問的 變多,我們就不得不記住一串又一串長達 32...

DNS網域名稱系統

是網際網路使用的命名系統,用來把便於人們使用的機器名字轉換為ip位址。如果一台計算機上的dns服務出現了錯誤,就可能導致,internet雖然連線了,但是不能訪問網頁,但是qq可以上去。這是因為qq是直接訪問的是ip位址。劃分為根網域名稱,一級網域名稱,二級網域名稱等。根網域名稱就是乙個點.通常會省...

網域名稱系統DNS

網域名稱解析過程 不一定理解全部正確 dns 全稱為 domain name system 是乙個網域名稱解析系統,把網域名稱 www.baidu.com 解析為ip位址。所以,這個乙個系統,是乙個服務,需要有伺服器來跑這些服務。dns伺服器按層次結構進行組織,且這個組織和網域名稱的結構相對應,網域...