正向查询:主要用到函数getaddrinfo()。
最基本的查询是正向查询,它根据一个主机名来查找IP地址。例如,你想从www.example.com上下载一个web页面,首先,你需要找到IP地址。正向查询会替你完成这个任务,它会把一个名字翻译成ip地址。关于正向查询,主要会用到函数:
socket.getaddrinfo(host, port ,[family, [sockettype[,proto[,flags]]]])参数函数:host即要查找的域名,port为端口号,可以是字符串(如'http',也可以是数字),family为协议类型(可以是AF_INET, AF_INET6, 0等),sockettype为:SOCK_STREAM或者SOCK_DGRAM。该函数返回值是一列tuple:(family,socktype,proto,cannoname,sockaddr)。sockaddr实际上就是远程机器的地址,包括ip地址和端口号,即你要查找的结果。该函数返回一个tuple的列表,是因为对于一个域名的查询,可能会有多个答案(ip地址),这样做可以解决负载问题。
对于查找的地址是ipv4的话,下面的函数也可以解决问题:
socket.gethostbyname(hostname)
该函数的参数为要查找的域名,如果该域名就是ip地址,则直接返回,返回的ip地址是字符串形式,如”100.50.200“。但不支持ipv6。
反向查询:主要用到的函数gethostbyaddr()
当知道ip地址的时候&#