c-ares هي مكتبة محلل DNS حديثة، مكتوبة بلغة C. وهي توفر واجهات للاستعلامات غير المتزامنة أثناء محاولة تجريد تعقيدات بروتوكول DNS الأساسي. كان مخصصًا في الأصل للتطبيقات التي تحتاج إلى إجراء استعلامات DNS دون حظر، أو تحتاج إلى إجراء استعلامات DNS متعددة بالتوازي.
أحد أهداف c-ares هو أن تكون محلل DNS أفضل مما يوفره نظامك، بغض النظر عن النظام الذي تستخدمه. نوصي باستخدام مكتبة c-ares في جميع تطبيقات الشبكة حتى لو لم يكن الهدف الأولي المتمثل في الدقة غير المتزامنة ضروريًا لتطبيقك.
سيتم إنشاء c-ares باستخدام أي مترجم C89 وهو مرخص من معهد ماساتشوستس للتكنولوجيا (MIT)، مما يجعله مناسبًا لكل من البرامج المجانية والتجارية. يعمل c-ares على Linux وFreeBSD وOpenBSD وMacOS وSolaris وAIX وWindows وAndroid وiOS والعديد من أنظمة التشغيل الأخرى.
تركز c-ares بشكل قوي على الأمان، وتنفيذ محللين آمنين ومنشئي بيانات مستخدمين في جميع أنحاء الكود، وبالتالي تجنب العديد من المخاطر الشائعة لمكتبات C الأخرى. من خلال الاختبار الآلي باستخدام إطار الاختبار الشامل الخاص بنا، يتم التحقق من صحة c-ares باستمرار باستخدام مجموعة من المحللات الثابتة والديناميكية، بالإضافة إلى التشويش المستمر بواسطة OSS Fuzz.
على الرغم من أن c-ares موجود منذ أكثر من 20 عامًا، فقد تمت صيانته بشكل نشط فيما يتعلق بأحدث طلبات DNS RFC بالإضافة إلى تحديثه لمتابعة أحدث أفضل الممارسات فيما يتعلق بمعايير تشفير C.
يتوفر كود المصدر الكامل وسجل المراجعة في مستودع GitHub الخاص بنا. إصداراتنا الموقعة متاحة في أرشيفات الإصدار.
راجع ملف INSTALL.md للحصول على معلومات البناء.
يجب الإبلاغ عن المشكلات وطلبات الميزات إلى صفحة مشكلات GitHub الخاصة بنا.
يتم إجراء المناقشات حول c-ares واستخدامها على مناقشات GitHub أو القائمة البريدية. أرشيف القائمة البريدية هنا. من فضلك، لا ترسل المتطوعين عبر البريد الإلكتروني بخصوص c-ares.
يتم التعامل مع الثغرات الأمنية وفقًا لإجراءاتنا الأمنية، يرجى إرسال بريد إلكتروني إلى c-ares-security على haxx.se إذا كنت تشك في وجودها.
مفاتيح GPG الأساسية لمحررات c-ares (بعض المحررات توقع باستخدام المفاتيح الفرعية):
27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA
لاستيراد المجموعة الكاملة من مفاتيح الإصدار الموثوقة (بما في ذلك المفاتيح الفرعية التي من المحتمل استخدامها لتوقيع الإصدارات):
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2 # Daniel Stenberg
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA # Brad House
لكل إصدار c-ares-XYZtar.gz
يوجد ملف c-ares-XYZtar.gz.asc
مطابق والذي يحتوي على التوقيع المنفصل للإصدار.
بعد جلب جميع مفاتيح التوقيع الصالحة المحتملة وتحميلها إلى سلسلة المفاتيح الخاصة بك وفقًا للقسم السابق، يمكنك ببساطة تشغيل الأمر أدناه على الحزمة التي تم تنزيلها والتوقيع المنفصل:
% 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
انظر الميزات
AAAA
.SRV
.NAPTR
.TLSA
.SVCB
و HTTPS
.URI
.CAA
.SIG0
. المحلل اللغوي الأساسي فقط، وليس التنفيذ الكامل..onion
مع NXDOMAIN
.localhost
/ .localhost
.ares_getaddrinfo()
.