c-ares es una biblioteca moderna de resolución de DNS (stub), escrita en C. Proporciona interfaces para consultas asincrónicas mientras intenta abstraer las complejidades del protocolo DNS subyacente. Originalmente estaba destinado a aplicaciones que necesitan realizar consultas DNS sin bloqueo o que necesitan realizar múltiples consultas DNS en paralelo.
Uno de los objetivos de c-ares es ser un mejor solucionador de DNS que el que proporciona su sistema, independientemente del sistema que utilice. Recomendamos utilizar la biblioteca c-ares en todas las aplicaciones de red incluso si el objetivo inicial de resolución asincrónica no es necesario para su aplicación.
c-ares se compilará con cualquier compilador C89 y tiene licencia MIT, lo que lo hace adecuado tanto para software gratuito como comercial. c-ares se ejecuta en Linux, FreeBSD, OpenBSD, MacOS, Solaris, AIX, Windows, Android, iOS y muchos más sistemas operativos.
c-ares tiene un fuerte enfoque en la seguridad, implementando analizadores y creadores de datos seguros utilizados en todo el código, evitando así muchos de los errores comunes de otras bibliotecas de C. A través de pruebas automatizadas con nuestro amplio marco de pruebas, c-ares se valida constantemente con una variedad de analizadores estáticos y dinámicos, además de ser modificado constantemente por OSS Fuzz.
Si bien c-ares existe desde hace más de 20 años, se ha mantenido activamente con respecto a las últimas RFC de DNS y se ha actualizado para seguir las mejores prácticas más recientes con respecto a los estándares de codificación C.
El código fuente completo y el historial de revisiones están disponibles en nuestro repositorio de GitHub. Nuestros lanzamientos firmados están disponibles en los archivos de lanzamientos.
Consulte el archivo INSTALL.md para obtener información de compilación.
Los problemas y solicitudes de funciones deben informarse en nuestra página de problemas de GitHub.
Las discusiones sobre c-ares y su uso se llevan a cabo en Discusiones de GitHub o en la Lista de correo. Archivo de la lista de correo aquí. Por favor, no envíe correos privados a los voluntarios sobre c-ares.
Las vulnerabilidades de seguridad se tratan de acuerdo con nuestro Procedimiento de seguridad; envíe un correo electrónico a c-ares-security a haxx.se si sospecha que existe alguna.
Claves GPG principales para liberadores c-ares (algunos liberadores firman con subclaves):
27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA
Para importar el conjunto completo de claves de versión confiables (incluidas las subclaves que posiblemente se utilicen para firmar versiones):
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2 # Daniel Stenberg
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA # Brad House
Para cada versión c-ares-XYZtar.gz
hay un archivo c-ares-XYZtar.gz.asc
correspondiente que contiene la firma separada de la versión.
Después de obtener todas las posibles claves de firma válidas y cargarlas en su llavero según la sección anterior, simplemente puede ejecutar el siguiente comando en el paquete descargado y la firma separada:
% gpg -v --verify c-ares-1.29.0.tar.gz.asc c-ares-1.29.0.tar.gz
gpg: enabled compatibility flags:
gpg: Signature made Fri May 24 02:50:38 2024 EDT
gpg: using RSA key 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
gpg: using pgp trust model
gpg: Good signature from " Daniel Stenberg " [unknown]
gpg: WARNING: This key is not certified with a trusted signature !
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 27ED EAF2 2F3A BCEB 50DB 9A12 5CC9 08FD B71E 12C2
gpg: binary signature, digest algorithm SHA512, key algorithm rsa2048
Ver características
AAAA
.SRV
.NAPTR
.TLSA
.SVCB
y HTTPS
.URI
.CAA
.SIG0
. Sólo analizador básico, no implementación completa..onion
con NXDOMAIN
.localhost
/ .localhost
.ares_getaddrinfo()
.