我们如何通过不安装任何第三方库来在Python中进行DNS查询,尤其是MX查询。
我想查询有关某个域的MX记录,但似乎socket.getaddrinfo
只能查询A记录。
我试过这个:
python -c "import socket; print socket.getaddrinfo('baidu.com', 25, socket.AF_INET, socket.SOCK_DGRAM)"
打印
[(2, 2, 17, '', ('220.181.57.217', 25)), (2, 2, 17, '', ('123.125.114.144', 25)), (2, 2, 17, '', ('180.149.132.47', 25))]
但是,我们无法使用telnet 220.181.57.217 25
或telnet 123.125.114.144 25
或telnet 180.149.132.47 25
远程登录。
答案 0 :(得分:1)
首先安装dnspython
import dns.resolver
answers = dns.resolver.query('dnspython.org', 'MX')
for rdata in answers:
print 'Host', rdata.exchange, 'has preference', rdata.preference