我们如何在Python中进行DNS查询

时间:2015-08-31 10:29:22

标签: python dns

我们如何通过不安装任何第三方库来在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 25telnet 123.125.114.144 25telnet 180.149.132.47 25远程登录。

1 个答案:

答案 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