user@devops:~$ cat README.md
DNS Probe
# Description
DNS Probe is a DNS resolver and packet analyzer written from scratch in C++23 with zero external dependencies. It implements the RFC 1035 wire format: name encoding with compression (0xC0 pointers), headers, questions and resource records (A, AAAA, CNAME, MX, NS, SOA, PTR, TXT) with bounds-checked parsing. It includes its own UDP transport with timeout, retries and RTT measurement, a default resolver read from /etc/resolv.conf, reverse lookup via -x, multiple domains per invocation, offline decoding of hex responses with --parse, and a self-test (--selftest) with 10 cases including a real response captured from 8.8.8.8. Standard exit codes (0=answers, 1=NXDOMAIN/no records, 2=error) for script integration. Built with GCC 14 using only the C++23 standard library and POSIX sockets.
# Key features
$ DNS wire format (RFC 1035) implemented from scratch in pure C++23
$ Name compression with 0xC0 pointers and bounds-checked parsing
$ Record types: A, AAAA, MX, NS, CNAME, SOA, PTR and TXT
$ Own UDP transport with timeout, retries and RTT measurement
$ Reverse lookup with -x (PTR over in-addr.arpa)
$ Offline decoding of hex responses with --parse
$ Self-test with 10 cases including a real 8.8.8.8 response
$ Zero dependencies: direct g++ build without CMake
# Gallery
# Technologies used