1 djbdns-logparse: make tinydns and dnscache logs human-readable
5 djbdns is Daniel J. Bernstein's suite of DNS software from,
7 https://cr.yp.to/djbdns.html
9 Two of its daemons, tinydns and dnscache, resolve DNS queries while
10 simultaneously logging obscure gibberish to a file. For example, this
11 is what tinydns logs if I request the 'A' record for www.example.com:
13 @4000000063227a320c4f3114 7f000001:9d61:be69 - 0001 www.example.com
15 djbdns-logparse converts these into something that you can actually
16 read. The line above gets turned into,
18 2022-09-14 21:04:40.206516500 dropped query (no authority) from
19 127.0.0.1:40289 (id 48745): a www.example.com
21 and surely you agree that this is preferable.
28 $ djbdns-logparse < logfile
32 $ djbdns-logparse log1 [log2 [log3 ...]]
39 a) python-3.6 or later, for f-strings support
40 b) the tai64nlocal program from djbdns in your PATH
45 This is a modernish fork of Greg Ward's parse_djbdns_log program
48 https://www.gerg.ca/hacks/parse_djbdns_log
50 The original was inspired by Faried Nawaz's dnscache log parser,
52 http://www.hungry.com/~fn/dnscache-log.pl.txt
54 with heavy assistance from Rob Mayoff's documentation:
56 * https://www.dqd.com/~mayoff/notes/djbdns/tinydns-log.html
57 * https://www.dqd.com/~mayoff/notes/djbdns/dnscache-log.html
62 The (doctest) test suite can be run with either setuptools,
64 $ python setup.py test
70 Or, you can just run them manually:
72 $ python -m doctest -v djbdns/*.py