V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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 · 3425 views
    This topic created in 2914 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   ·   Solana   ·   947 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 22:40 · PVG 06:40 · LAX 15:40 · JFK 18:40
    ♥ Do have faith in what you're doing.