JDNS
JDNS

Date: October 1st, 2005 Author: Justin Karneges justi.nosp@m.n@af.nosp@m.finix.nosp@m..com

JDNS is a simple DNS implementation that can perform normal DNS queries of any record type (notably SRV), as well as Multicast DNS queries and advertising. Multicast support is based on Jeremie Miller's "mdnsd" implementation.

For maximum flexibility, JDNS is written in C with no direct dependencies, and is licensed under the MIT license. Your application must supply functionality to JDNS, such as UDP sending/receiving, via callbacks.

For Qt users there is a wrapper available called QJDns. jdns.pri can be used to include everything into a qmake project. jdns.pro will build the sample Qt-based commandline tool 'jdns'.

Features:

Why?

How to use:

What is left to you:

Using a custom DNS implementation has the drawback that it is difficult to take advantage of platform-specific features (for example, an OS-wide DNS cache or LDAP integration).

An application strategy for normal DNS should probably be:

However, it may not be a bad idea at first to use JDNS for all occasions, so that it can be debugged.

For Multicast DNS, awareness of the platform is doubly important. There should only be one Multicast DNS "Responder" per computer, and using JDNS at the same time could result in a conflict.

An application strategy for Multicast DNS should be:

Have fun!