add new lookup_module field to zdns.Result to disambiguate what lookup module caused what output line
add integration tests for both the above
add new lookups field in metadata. names will be incremented for every domain name processed, lookups incremented for every domain + lookup module pair processed. Matters when querying with multiple modules at once.
update README with new usage
New --help flag
-c, --multi-config-file= config file path for multiple module
MULTIPLE's --help
$ ./zdns MULTIPLE -h
Usage:
zdns [OPTIONS] <command> [DOMAINS]
zdns [OPTIONS] MULTIPLE
MULTIPLE is a lookup module used from the CLI to use multiple lookup modules at once with the help of a configuration file provided with --multi-config-file/-c. See README.md/Multiple Lookup Modules for more information.
Testing
Normal Usage
$ echo "cloudflare.com" | ./zdns A
{"name":"cloudflare.com","results":{"A":{"data":{"additionals":[{"flags":"","type":"EDNS0","udpsize":512,"version":0}],"answers":[{"answer":"104.16.133.229","class":"IN","name":"cloudflare.com","ttl":20,"type":"A"},{"answer":"104.16.132.229","class":"IN","name":"cloudflare.com","ttl":20,"type":"A"}],"protocol":"udp","resolver":"192.168.1.1:53"},"duration":0.03728875,"status":"NOERROR","timestamp":"2024-08-23T14:39:49-04:00"}}}
Dig-style Domains
$ ./zdns A google.com yahoo.com cloudflare.com
{"name":"google.com","results":{"A":{"data":{"additionals":[{"flags":"","type":"EDNS0","udpsize":512,"version":0}],"answers":[{"answer":"142.250.190.110","class":"IN","name":"google.com","ttl":104,"type":"A"}],"protocol":"udp","resolver":"192.168.1.1:53"},"duration":0.042185917,"status":"NOERROR","timestamp":"2024-08-23T14:40:12-04:00"}}}
{"name":"cloudflare.com","results":{"A":{"data":{"additionals":[{"flags":"","type":"EDNS0","udpsize":512,"version":0}],"answers":[{"answer":"104.16.132.229","class":"IN","name":"cloudflare.com","ttl":119,"type":"A"},{"answer":"104.16.133.229","class":"IN","name":"cloudflare.com","ttl":119,"type":"A"}],"protocol":"udp","resolver":"192.168.1.1:53"},"duration":0.04169675,"status":"NOERROR","timestamp":"2024-08-23T14:40:12-04:00"}}}
{"name":"yahoo.com","results":{"A":{"data":{"additionals":[{"flags":"","type":"EDNS0","udpsize":512,"version":0}],"answers":[{"answer":"74.6.231.21","class":"IN","name":"yahoo.com","ttl":770,"type":"A"},{"answer":"74.6.143.26","class":"IN","name":"yahoo.com","ttl":770,"type":"A"},{"answer":"98.137.11.164","class":"IN","name":"yahoo.com","ttl":770,"type":"A"},{"answer":"98.137.11.163","class":"IN","name":"yahoo.com","ttl":770,"type":"A"},{"answer":"74.6.143.25","class":"IN","name":"yahoo.com","ttl":770,"type":"A"},{"answer":"74.6.231.20","class":"IN","name":"yahoo.com","ttl":770,"type":"A"}],"protocol":"udp","resolver":"[2603:6013:9d00:3302::1]:53"},"duration":0.058911625,"status":"NOERROR","timestamp":"2024-08-23T14:40:12-04:00"}}}
Multi-Module
; Specify Global Options here
[Application Options]
iterative=true
prefer-ipv6-iteration="true"
; List out modules and their respective module-specific options here. A module can only be listed once
[ALOOKUP]
ipv4-lookup = true
; You can use default values and just list modules if you don't need to specify any options
[A]
[AAAA]
[CNAME]
Closes #234 and #266
Description
./zdns A google.com yahoo.com
lookup_module
field tozdns.Result
to disambiguate what lookup module caused what output linelookups
field in metadata.names
will be incremented for every domain name processed,lookups
incremented for every domain + lookup module pair processed. Matters when querying with multiple modules at once.New
--help
flag-c, --multi-config-file= config file path for multiple module
MULTIPLE
's--help
Testing
Normal Usage
Dig-style Domains
Multi-Module
Metadata, new
lookup
field andActiveModuleNames
/ActiveModules
listed at endSame run as before,
Multiple domains, dig-style, with
MULTIPLE