dnsjava
An implementation of the DNS protocol in Java
dnsjava is an implementation of DNS in Java. It supports almost all defined record types (including the DNSSEC types), and unknown types. Can be used for queries, zone transfers, and dynamic updates. Includes a cache that can be used by clients, and an authoritative-only server. It supports TSIG authenticated messages, DNSSEC verification, and EDNS0.