dns-query-async.py is a tool to perform DNS queries in parallel.
This is the man page:
Usage: dns-query-async.py [options] command file Program to perform asynchronous DNS queries accepted commands: gethost,getaddr Source code put in the public domain by Didier Stevens, no Copyright Use at your own risk https://DidierStevens.com Options: --version show program's version number and exit -h, --help show this help message and exit -m, --man Print manual -o OUTPUT, --output=OUTPUT Output to file (# supported) -s NAMESERVERS, --nameservers=NAMESERVERS List of nameservers (,-separated) -n NUMBER, --number=NUMBER Number of simultaneous requests (default 10000) -t TRANSFORM, --transform=TRANSFORM Transform input (%%) Manual: This tool performs asynchronous DNS queries. By default, it will perform 10000 queries simultaneously. The first argument is a command. There are 2 commands for the moment: gethost and getaddr The second argument is a filename: a text file containing the items to resolve. Use command getaddr to lookup the IP address of the hostnames provided in the input file. Example: dns-query-async.py getaddr names.txt Result: didierstevens.com,1,18.104.22.168 didierstevenslabs.com,1,22.214.171.124 Duration: 0.20s Use command gethost to lookup the hostnames of the IP addresses provided in the input file. Example: dns-query-async.py gethost ips.txt Use option -s to provide the name servers to use (comma separated list). Use option -n to change the number of asyncio workers (10000 default). Use option -t to transform the input list and perform lookups. For example, take list of subdomains/hostnames https://github.com/m0nad/DNS- Discovery/blob/master/wordlist.wl Issue the following command: dns-query-async.py -t %%.example.com getaddr wordlist.wl Result: 0.example.com,0,Domain name not found 009b.example.com,0,Domain name not found 01.example.com,0,Domain name not found 02.example.com,0,Domain name not found 03.example.com,0,Domain name not found 1.example.com,0,Domain name not found 10.example.com,0,Domain name not found 101a.example.com,0,Domain name not found The %% in %%.example.com is replaced by each hostname/subdomain in wordlist.wl and then resolved. Use option -o to write the output to a file.
Article Link: New Tool: dns-query-async.py | Didier Stevens