
Security News
NVD Concedes Inability to Keep Pace with Surging CVE Disclosures in 2025
Security experts warn that recent classification changes obscure the true scope of the NVD backlog as CVE volume hits all-time highs.
https://github.com/saghul/pycares/issues/139
pycares is a Python module which provides an interface to c-ares.
c-ares <https://c-ares.org>
_ is a C library that performs
DNS requests and name resolutions asynchronously.
http://readthedocs.org/docs/pycares/
pycares currently bundles c-ares as a submodule for ease of building. Using the system
provided c-ares is possible if the PYCARES_USE_SYSTEM_LIB
environment variable is
set to 1
when building.
NOTE: Versions prior to 4.0.0 used to embed a modified c-ares with extended TTL support. That is no longer the case and as a result only A and AAAA records will have TTL information. Follow this PR in uppstream c-ares, looks like TTLs will be added: https://github.com/c-ares/c-ares/pull/393
GNU/Linux, macOS, Windows, others:
::
pip install pycares
FreeBSD:
::
cd /usr/ports/dns/py-pycares && make install
IDNA 2008 support ^^^^^^^^^^^^^^^^^
If the idna
package is installed, pycares will support IDNA 2008 encoding otherwise the builtin idna codec will be used,
which provides IDNA 2003 support.
You can force this at installation time as follows:
::
pip install pycares[idna]
From the top level directory, run: python -m unittest -v
NOTE: Running the tests requires internet access and are somewhat environment sensitive because real DNS quesries are made, there is no mocking. If you observe a failure that the CI cannot reproduce, please try to setup an environment as close as the current CI.
This module can be used directly from the command line in a similar fashion to dig (limited, of course):
::
$ 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
Saúl Ibarra Corretgé s@saghul.net
Unless stated otherwise on-file pycares uses the MIT license, check LICENSE file.
Python >= 3.9 are supported. Both CPython and PyPy are supported.
If you'd like to contribute, fork the project, make a patch and send a pull request. Have a look at the surrounding code and please, make yours look alike :-)
FAQs
Python interface for c-ares
We found that pycares demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Security experts warn that recent classification changes obscure the true scope of the NVD backlog as CVE volume hits all-time highs.
Security Fundamentals
Attackers use obfuscation to hide malware in open source packages. Learn how to spot these techniques across npm, PyPI, Maven, and more.
Security News
Join Socket for exclusive networking events, rooftop gatherings, and one-on-one meetings during BSidesSF and RSA 2025 in San Francisco.