Python - DNS 查询
DNS 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
IP 地址在转换为人类可读的格式或单词后称为域名。 域名到 IP 地址的转换由 python 模块 dnspython 管理。该模块还提供了查找 CNAME 和 MX 记录的方法。
查找'A'记录
在下面的程序中,使用 dns.resolver 方法找到域的 IP 地址。 通常这种 IP 地址和域名之间的映射也称为"A"记录。
import dnspython as dns import dns.resolver result = dns.resolver.query('tutorialspoint.com', 'A') for ipval in result: print('IP', ipval.to_text())
当运行上面的程序时,得到以下输出 −
('IP', u'94.130.81.180')
查找 CNAME 值
CNAME 记录也称为规范名称记录,是域名系统 (DNS) 中的一种记录,用于将域名映射为另一个域的别名。 CNAME 记录总是指向另一个域名,从不直接指向 IP 地址。 在下面的查询方法中我们指定了 CNAME 参数来获取 CNAME 值。
import dnspython as dns import dns.resolver result = dns.resolver.query('mail.google.com', 'CNAME') for cnameval in result: print ' cname target address:', cnameval.target
当运行上面的程序时,得到以下输出 −
cname target address: googlemail.l.google.com.
查找MX记录
MX 记录也称为邮件交换器记录,是域名系统中的资源记录,它指定负责代表收件人域接受电子邮件的邮件服务器。 如果有多个邮件服务器可用,它还会设置用于确定邮件传递优先级的首选项值。 与上述程序类似,我们可以在查询方法中使用"MX"参数找到 MX 记录的值。
result = dns.resolver.query('mail.google.com', 'MX') for exdata in result: print ' MX Record:', exdata.exchange.text()
当运行上面的程序时,得到以下输出 −
MX Record: ASPMX.L.GOOGLE.COM. MX Record: ALT1.ASPMX.L.GOOGLE.COM. MX Record: ALT2.ASPMX.L.GOOGLE.COM.
以上是示例输出,并非准确输出。