推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
anywalker707
V2EX  ›  Python

python3 调用 resolver 错误

  •  
  •   anywalker707 · May 4, 2018 · 3782 views
    This topic created in 3072 days ago, the information mentioned may be changed or developed.
    想获取一条 url 的全部 CName,网上找到一段代码:
    from dns import resolver

    ans = resolver.query("www.chinacache.com", "A")
    print("qname:",ans.qname)
    print ("reclass:",ans.rdclass)
    print ("rdtype:",ans.rdtype)
    print ("rrset:",ans.rrset)
    print ("response:",ans.response)
    经 pycharm 编译后报错:

    Traceback (most recent call last):
    File "D:/OneDrive/Kingsoft/Python/Sublime_workspace/1.py", line 4, in <module>
    ans = resolver.query("www.baidu.com", "A")
    File "C:\Program Files\Python36\lib\site-packages\dns\resolver.py", line 1132, in query
    raise_on_no_answer, source_port)
    File "C:\Program Files\Python36\lib\site-packages\dns\resolver.py", line 1051, in query
    raise NXDOMAIN(qnames=qnames_to_try, responses=nxdomain_responses)
    dns.resolver.NXDOMAIN: None of DNS query names exist: www.baidu.com., www.baidu.com.ksyun.com., www.baidu.com.192.168.12.18., www.baidu.com.192.168.12.19., www.baidu.com.114.114.114.114., www.baidu.com.ksyun.com., www.baidu.com.192.168.12.18., www.baidu.com.192.168.12.19., www.baidu.com.114.114.114.114., www.baidu.com.kingsoft.cn.
    2 replies  •  2018-05-04 20:41:33 +08:00
    DevNet
        1
    DevNet  
       May 4, 2018
    dns.resolver.query('www.baidu.com', 'CNAME').response.answer[-1].items[-1].to_text()
    获取全部的话,两个列表可以循环一下~

    import dns.resolver

    domain=raw_input('please input an domain:')

    ns=dns.resolver.query(domain,'CNAME')

    for i in ns.response.answer:

    for j in i.items:

    print j.to_text()
    anywalker707
        2
    anywalker707  
    OP
       May 4, 2018
    可能是系统的问题
    我的是 window10,报错;代码 copy 到一个苹果电脑上可以,但是只返回第一个 Cname
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1079 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:20 · PVG 01:20 · LAX 10:20 · JFK 13:20
    ♥ Do have faith in what you're doing.