Python Network Programming 简明教程
Python - DNS Look-up
当 IP 地址转换为人类可读的格式或单词时,便称为域名。域名到 IP 地址的转换由 Python 模块 dnspython 管理。此模块还提供查找 CNAME 和 MX 记录的方法。
Finding 'A' Record
在以下程序中,我们使用 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')
Finding CNAME Value
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.
Finding MX Record
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.
上述是一个示例输出,并非确切的输出。