python开发笔记---dnspython

开发过程中需要拿到域名对应的所有ip地址,平时使用中,比如说shell里面,使用dig domain.org +short就能拿到。但是现在想要在python里面使用,于是找到了一个叫做dnspython的lib,使用它可以很简单的拿到域名对应的ip地址列表,需要注意的是,需要将域名进行转化+判定

代码如下

import dns.name
import dns.message
import dns.query
import dns.flags
name_server = ‘8.8.8.8’

ADDITIONAL_RDCLASS=65535
def dig(domain):
domain = dns.name.from_text(domain)
if not domain.is_absolute():

domain = domain.concatenate(dns.name.root)

request = dns.message.make_query(domain, dns.rdatatype.ANY)
request.flags |= dns.flags.AD
request.find_rrset(request.additional, dns.name.root, ADDITIONAL_RDCLASS,
dns.rdatatype.OPT, create=True, force_unique=True)
response = dns.query.udp(request, name_server)
address_list = []

#print response.answer
if len(response.answer) > 3:
for a in response.answer[2]:

#print a
address_list.append(a.address)

return address_list

转载请注明来源链接 http://just4fun.im/2016/12/20/python-e5-bc-80-e5-8f-91-e7-ac-94-e8-ae-b0-dnspython/ 尊重知识,谢谢:)