c-ares เป็นไลบรารีตัวแก้ไข DNS (stub) สมัยใหม่ เขียนด้วยภาษา 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 ให้ความสำคัญกับความปลอดภัยเป็นอย่างมาก การใช้ parsers ที่ปลอดภัยและตัวสร้างข้อมูลที่ใช้ทั่วทั้งโค้ด ดังนั้นจึงหลีกเลี่ยงข้อผิดพลาดทั่วไปหลายประการของไลบรารี 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 Releasers (ผู้เผยแพร่บางรายเซ็นชื่อด้วยคีย์ย่อย):
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 " [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()