c-ares é uma biblioteca moderna de resolução de DNS (stub), escrita em C. Ela fornece interfaces para consultas assíncronas enquanto tenta abstrair as complexidades do protocolo DNS subjacente. Ele foi originalmente planejado para aplicativos que precisam realizar consultas DNS sem bloqueio ou que precisam realizar várias consultas DNS em paralelo.
Um dos objetivos do c-ares é ser um resolvedor de DNS melhor do que o fornecido pelo seu sistema, independentemente do sistema que você usa. Recomendamos o uso da biblioteca c-ares em todas as aplicações de rede, mesmo que o objetivo inicial de resolução assíncrona não seja necessário para sua aplicação.
c-ares pode ser compilado com qualquer compilador C89 e é licenciado pelo MIT, o que o torna adequado para software gratuito e comercial. c-ares roda em Linux, FreeBSD, OpenBSD, MacOS, Solaris, AIX, Windows, Android, iOS e muitos outros sistemas operacionais.
c-ares tem um forte foco na segurança, implementando analisadores e construtores de dados seguros usados em todo o código, evitando assim muitas das armadilhas comuns de outras bibliotecas C. Através de testes automatizados com nossa extensa estrutura de testes, o c-ares é constantemente validado com uma variedade de analisadores estáticos e dinâmicos, além de ser constantemente fuzzed pelo OSS Fuzz.
Embora c-ares exista há mais de 20 anos, ele tem sido mantido ativamente tanto em relação às RFCs DNS mais recentes quanto atualizado para seguir as práticas recomendadas mais recentes em relação aos padrões de codificação C.
O código-fonte completo e o histórico de revisões estão disponíveis em nosso repositório GitHub. Nossos comunicados assinados estão disponíveis nos arquivos de lançamento.
Consulte o arquivo INSTALL.md para obter informações de construção.
Problemas e solicitações de recursos devem ser relatados em nossa página de problemas do GitHub.
As discussões sobre c-ares e seu uso são realizadas nas discussões do GitHub ou na lista de discussão. Arquivo da lista de discussão aqui. Por favor, não envie mensagens privadas para voluntários sobre c-ares.
As vulnerabilidades de segurança são tratadas de acordo com nosso Procedimento de Segurança. Envie um e-mail para c-ares-security em haxx.se se você suspeitar de alguma.
Chaves GPG primárias para Releasers c-ares (alguns Releasers assinam com subchaves):
27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA
Para importar o conjunto completo de chaves de liberação confiáveis (incluindo subchaves possivelmente usadas para assinar liberações):
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2 # Daniel Stenberg
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA # Brad House
Para cada versão c-ares-XYZtar.gz
existe um arquivo c-ares-XYZtar.gz.asc
correspondente que contém a assinatura desanexada para a versão.
Depois de buscar todas as chaves de assinatura válidas possíveis e carregá-las em suas chaves conforme a seção anterior, você pode simplesmente executar o comando abaixo no pacote baixado e na assinatura desanexada:
% 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 <[email protected]> " [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
Veja recursos
AAAA
.SRV
.NAPTR
.TLSA
.SVCB
e HTTPS
.URI
.CAA
.SIG0
. Apenas analisador básico, não implementação completa..onion
com NXDOMAIN
.localhost
/ .localhost
.ares_getaddrinfo()
.