c-ares的python接口
pycares的Python项目详细描述
pycares是一个python模块,它提供了一个到c-ares的接口。 c-ares是一个执行 DNS请求和名称解析是异步的。
捆绑C-Ares
pycares目前捆绑了c-ares,从pycares 1.0.0开始这是一个很强的需求。上游 c-ares不愿意申请a patch adding TTL support。 我确实在捆绑的C-Ares上应用了补丁,但不幸的是它破坏了ABI,所以尝试 使用系统提供的c-ares是不可能的。
安装
GNU/Linux、MacOS、Windows、其他:
pip install pycares
免费订阅:
cd /usr/ports/dns/py-pycares && make install
IDNA 2008支持
如果安装了idna包,pycares将支持idna 2008编码,否则将使用内置的idna编解码器, 它提供idna 2003支持。
您可以在安装时强制执行以下操作:
pip install pycares[idna]
运行测试套件
有几种运行测试结果的方法:
使用当前的python解释器运行测试:
从顶层目录运行:python tests/tests.py
使用tox在多个virtualenv中运行测试套件,并使用多个解释器
从顶层目录运行:tox -e py35,py36,py37这将运行测试套件 在Python3.5、3.6和3.7上(您需要事先安装它们)
从cli使用它,a la dig
此模块可以直接从命令行使用,方式与dig类似(当然是有限的):
$ python -m pycares google.com ;; QUESTION SECTION: ;google.com IN A ;; ANSWER SECTION: google.com 300 IN A 172.217.17.142 $ python -m pycares mx google.com ;; QUESTION SECTION: ;google.com IN MX ;; ANSWER SECTION: google.com 600 IN MX 50 alt4.aspmx.l.google.com google.com 600 IN MX 10 aspmx.l.google.com google.com 600 IN MX 40 alt3.aspmx.l.google.com google.com 600 IN MX 20 alt1.aspmx.l.google.com google.com 600 IN MX 30 alt2.aspmx.l.google.com
许可证
除非文件中另有说明,否则pycares使用mit许可证,请检查许可证文件。
支持的Python版本
支持python>;=3.5。cpython和pypy都受支持。
贡献
如果你想贡献自己的一份力量,那就分出一个项目,做一个补丁,然后发送一个pull 请求。看看周围的代码,请,让你的看起来 相似:—)