首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python不导入dns.resolver中的列表

问Python不导入dns.resolver中的列表
EN

Stack Overflow用户
提问于 2022-01-27 09:37:14
回答 2查看 144关注 0票数 -1

我正在编写一个代码,它将从域列表中解析CNAME,但我当前的脚本只解析list.txt的第一行,跳过其余的代码。

我通过运行"dl"来检查print(dl)将所有行导入列表中,但是dns.resolver并没有对每个列表数据进行检查。

我的样本代码是:

代码语言:javascript
复制
#/usr/bin/python3

import dns.resolver

d = open("list.txt" , "r")
dl = d.read().splitlines()

try:
    for dom in dl:
        answer = dns.resolver.resolve(dom, 'CNAME')
        for rdata in answer:
            print("CNAME", ':', rdata.to_text())
        
except Exception as e:
    print(e)

list.txt是:

代码语言:javascript
复制
www.google.com
www.github.com
www.facebook.com

期望的产出是:

代码语言:javascript
复制
CNAME : www.gcaname.com
CNAME : www.gcaname.com
The DNS response does not contain an answer to the question: www.github.com. IN CNAME
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-27 09:57:11

这样做是有效的:

代码语言:javascript
复制
for dom in dl:
        try:    
            answer = dns.resolver.resolve(dom, 'CNAME')
            for rdata in answer:
                print("CNAME of %s" % dom, ':', rdata.to_text())
        except Exception as e:
            pass
票数 0
EN

Stack Overflow用户

发布于 2022-01-27 09:42:33

试试这个:

代码语言:javascript
复制
answers = dns.resolver.query('mail.google.com', 'CNAME')
print ' query qname:', answers.qname, ' num ans.', len(answers)
for rdata in answers:
    print ' cname target address:', rdata.target
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70876278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档