跳转到主要内容

c-ares的Python接口

项目描述

寻找新的维护者

https://github.com/saghul/pycares/issues/139

pycares:c-ares的Python接口

pycares是一个Python模块,它提供了一个到c-ares的接口。 c-ares是一个C库,它以异步方式执行DNS请求和名称解析。

文档

http://readthedocs.org/docs/pycares/

捆绑c-ares

pycares当前将c-ares作为子模块捆绑,以简化构建过程。如果构建时将环境变量PYCARES_USE_SYSTEM_LIB设置为1,则可以使用系统提供的c-ares。

注意:4.0.0之前的版本曾嵌入一个修改过的c-ares,具有扩展的TTL支持。现在不再是这样,因此只有A和AAAA记录将具有TTL信息。请关注上游c-ares中的此PR,看起来将添加TTL: https://github.com/c-ares/c-ares/pull/393

安装

GNU/Linux,macOS,Windows,其他

pip install pycares

FreeBSD

cd /usr/ports/dns/py-pycares && make install

IDNA 2008支持

如果已安装idna包,pycares将支持IDNA 2008编码;否则将使用内置的idna编解码器,它提供IDNA 2003支持。

您可以在安装时强制执行此操作,如下所示

pip install pycares[idna]

运行测试套件

从顶级目录运行: python -m unittest -v

注意:运行测试需要网络连接,并且对环境敏感,因为会进行真实的DNS查询,没有使用模拟。如果您观察到CI无法复制的失败情况,请尝试设置一个尽可能接近当前CI的环境。

从命令行使用,类似于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

作者

萨乌尔·伊巴拉·科雷特格 <s@saghul.net>

许可证

除非文件中另有说明,pycares使用MIT许可,请检查LICENSE文件。

支持的Python版本

支持Python >= 3.8。CPython和PyPy都受支持。

贡献

如果您想贡献,请fork项目,制作补丁并提交pull request。请查看周围的代码,并请尽量使您的代码看起来类似 :-)

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

pycares-4.4.0.tar.gz (821.6 kB 查看哈希值)

上传时间 源代码

构建发行版

pycares-4.4.0-cp312-cp312-win_amd64.whl (76.3 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

pycares-4.4.0-cp312-cp312-win32.whl (61.5 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86

pycares-4.4.0-cp312-cp312-musllinux_1_1_x86_64.whl (283.2 kB 查看哈希值)

上传于 CPython 3.12 musllinux: musl 1.1+ x86-64

pycares-4.4.0-cp312-cp312-musllinux_1_1_i686.whl (260.9 kB 查看哈希)

上传于 CPython 3.12 musllinux: musl 1.1+ i686

pycares-4.4.0-cp312-cp312-musllinux_1_1_aarch64.whl (282.1 kB 查看哈希)

上传于 CPython 3.12 musllinux: musl 1.1+ ARM64

pycares-4.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (290.1 kB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

pycares-4.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (290.5 kB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

pycares-4.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (270.8 kB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pycares-4.4.0-cp312-cp312-macosx_10_9_x86_64.whl (75.6 kB 查看哈希)

上传于 CPython 3.12 macOS 10.9+ x86-64

pycares-4.4.0-cp312-cp312-macosx_10_9_universal2.whl (136.9 kB 查看哈希)

上传于 CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

pycares-4.4.0-cp311-cp311-win_amd64.whl (76.3 kB 查看哈希)

上传于 CPython 3.11 Windows x86-64

pycares-4.4.0-cp311-cp311-win32.whl (61.5 kB 查看哈希)

上传于 CPython 3.11 Windows x86

pycares-4.4.0-cp311-cp311-musllinux_1_1_x86_64.whl (282.1 kB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ x86-64

pycares-4.4.0-cp311-cp311-musllinux_1_1_i686.whl (260.1 kB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ i686

pycares-4.4.0-cp311-cp311-musllinux_1_1_aarch64.whl (280.8 kB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ ARM64

pycares-4.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (288.7 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

pycares-4.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (289.3 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

pycares-4.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (270.0 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pycares-4.4.0-cp311-cp311-macosx_10_9_x86_64.whl (75.5 kB 查看哈希)

上传于 CPython 3.11 macOS 10.9+ x86-64

pycares-4.4.0-cp311-cp311-macosx_10_9_universal2.whl (136.8 kB 查看哈希)

上传于 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

pycares-4.4.0-cp310-cp310-win_amd64.whl (76.3 kB 查看哈希)

上传于 CPython 3.10 Windows x86-64

pycares-4.4.0-cp310-cp310-win32.whl (61.5 kB 查看哈希)

上传于 CPython 3.10 Windows x86

pycares-4.4.0-cp310-cp310-musllinux_1_1_x86_64.whl (282.2 kB 查看哈希)

上传于 CPython 3.10 musllinux: musl 1.1+ x86-64

pycares-4.4.0-cp310-cp310-musllinux_1_1_i686.whl (260.1 kB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.1+ i686

pycares-4.4.0-cp310-cp310-musllinux_1_1_aarch64.whl (280.8 kB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.1+ ARM64

pycares-4.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (288.7 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

pycares-4.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (289.3 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

pycares-4.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (270.1 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pycares-4.4.0-cp310-cp310-macosx_10_9_x86_64.whl (75.5 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

pycares-4.4.0-cp310-cp310-macosx_10_9_universal2.whl (136.8 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

pycares-4.4.0-cp39-cp39-win_amd64.whl (76.3 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

pycares-4.4.0-cp39-cp39-win32.whl (61.5 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

pycares-4.4.0-cp39-cp39-musllinux_1_1_x86_64.whl (282.1 kB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ x86-64

pycares-4.4.0-cp39-cp39-musllinux_1_1_i686.whl (260.1 kB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ i686

pycares-4.4.0-cp39-cp39-musllinux_1_1_aarch64.whl (280.8 kB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ ARM64

pycares-4.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (288.7 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

pycares-4.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (289.3 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

pycares-4.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (270.1 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pycares-4.4.0-cp39-cp39-macosx_10_9_x86_64.whl (75.5 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

pycares-4.4.0-cp39-cp39-macosx_10_9_universal2.whl (136.8 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

pycares-4.4.0-cp38-cp38-win_amd64.whl (76.3 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

pycares-4.4.0-cp38-cp38-win32.whl (61.5 kB 查看哈希值)

上传于 CPython 3.8 Windows x86

pycares-4.4.0-cp38-cp38-musllinux_1_1_x86_64.whl (282.6 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ x86-64

pycares-4.4.0-cp38-cp38-musllinux_1_1_i686.whl (260.5 kB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.1+ i686

pycares-4.4.0-cp38-cp38-musllinux_1_1_aarch64.whl (281.3 kB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.1+ ARM64

pycares-4.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (289.0 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64

pycares-4.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (289.5 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ ARM64

pycares-4.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (270.3 kB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

pycares-4.4.0-cp38-cp38-macosx_10_9_x86_64.whl (75.5 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ x86-64

pycares-4.4.0-cp38-cp38-macosx_10_9_universal2.whl (136.8 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面