John Heidemann / Software / DNS Tools

What are dns_browse and dns_tree?

dns_tree is a command-line-based front-end to dig. It replaces the several dig invocations necessary to fetch a zone, and it formats the output in a somewhat sensible hierarchical style (a tree).

dns_browse is a GUI front-end to dns_tree. It allows point-and-click DNS browsing and makes it easy to expand/compress hierarchies in one or more DNS zones.

Sample dns_browse display: [dns_browse display]


dns_tree requires dig (available as part of bind from, and Perl 5.002 or later (available from dns_browse requires Tk-4.2 or later (available from

Availability and Bugs

Download dns_browse 1.9 (23KB tar.gz).

Feedback about these tools is welcome; send comments to John Heidemann, <>.

1.9 fixes a security bug (found thanks to Debian) and adds partial support for LOC RRs to dns_tree (but not dns_browse).

1.8 fixes a bug using dig from BIND-9.1.0.

1.5 and 1.6 have fixed some installation bugs; 1.6 adds support for the dig that ships with BIND-8.

There is a bug in handling expanding/new-windowing on internal zones. This bug can be demonstrated by opening the root and then expanding The (yet to be implemented) fix is to and do zone transfers for iz’s that have NS records.

If you get warning messages like:

"my" variable $types_aref masks earlier declaration in same scope at ./dns_tree line 368.
"my" variable $ns masks earlier declaration in same scope at ./dns_tree line 370.

Try applying this patch.

Copyright © 1995-2003 by John Heidemann