python 實現dns請求,dns_request(socket getaddrinfo whiel)


#coding:UTF-8
#socket.getaddrinfo(host,  port, family=0, socktype=0, proto=0, flags=0)    
#根據給定的參數host/port,相應的轉換成一個包含用於創建socket對象的五元組,    
#參數host為域名,以字符串形式給出代表一個IPV4/IPV6地址或者None.    
#參數port如果字符串形式就代表一個服務名,比如“http”"ftp""email"等,或者為數字,或者為None    
#參數family為地主族,可以為AF_INET  ,AF_INET6 ,AF_UNIX.    
#參數socketype可以為SOCK_STREAM(TCP)或者SOCK_DGRAM(UDP)    
#參數proto通常為0可以直接忽略,就是指定協議。套接口所用的協議。如調用者不想指定,可用0。常用的協議有,IPPROTO_TCP(=6)和IPPTOTO_UDP(=17),它們分別對應TCP傳輸協議、UDP傳輸協議。    
#參數flags為AI_*的組合,比如AI_NUMERICHOST,它會影響函數的返回值    
#附注:給參數host,port傳遞None時建立在C基礎,通過傳遞NULL。    
#該函數返回一個五元組(family, socktype, proto, canonname, sockaddr),同時第五個參數sockaddr也是一個二元組(address, port)    
# Echo server program    
import sys,socket
domain='www.baidu.com'
x=0
n=1
while x<n:
result=socket.getaddrinfo(domain,53,socket.AF_INET,socket.SOCK_DGRAM,17,0)
print result
num=len(result)
#print num
a=0
print domain
while a<num:
i=result[a][4][0]
print i
a=a+1
#print a

x=x+1

 

ps:注釋部分為網上資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM