python 实现dns解析,dns_request(socket getaddrinfo whiel)

3/8/2017来源:ASP.NET技巧人气:3208

#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:注释部分为网上资料