brc
batch_resolve_cli
cargo install batch_resolve_cli
brc

batch_resolve_cli

Fast asynchronous DNS batch resolver

by Mike Lubinets

0.3.7 (see all)License:MIT
cargo install batch_resolve_cli
Readme

Crates.io Gitter Donate

This page in Russian

Batch Resolve

Fast asynchronous DNS resolver

Install

Distro packages

There are prebuilt deb and rpm packages for x86_64 you can find within the releases in the list of versions

Arch Linux users can install the package from AUR

Packages install the config file into /etc/batch_resolve.toml

Static binary

Every release binary can be found in the the list of versions. Just place it to one of directories in your PATH (e.g. /usr/bin)

Install from crates.io

If you have rust toolkit installed, you can install batch_resolve with

cargo install batch_resolve_cli

Usage

Input and output format is list delimited with new line. Consider such input domains.txt

google.com
rust-lang.org
mozilla.org

Resolve all A records:

batch_resolve --in domains.txt --out hosts.txt --query A

Resolve A and AAAA records:

batch_resolve -i domains.txt -o hosts.txt -q A
              -i domains.txt -o hosts.txt -q AAAA  

Configuration

By default batch_resolve uses Google DNS servers 8.8.8.8 and 8.8.4.4 and retries 10 times on Connection Timeout error. These and Queries Per Second parameters may be altered in configuration file.

Configuration file may be placed in the following locations (priority descending):

batch_resolve.toml
$HOME/.config/batch_resolve.toml
/etc/batch_resolve.toml

Configuration includes DNS servers, queries per second amount and retries on failure count

# DNS servers are only accepted as socket addresses
# If port is not specified default DNS :53 port will be used
dns = [
    "8.8.8.8",
    "8.8.4.4"
]

# How many queries to perform per second
# WARNING: Google Public DNS guaranteed to handle 500 requests per second max
# Please make sure that resolve results do not vary with higher request rates
# before using high QPS configuration in production.
# Alternatively you can use your own local caching DNS server.
queries_per_second = 500

# Times to retry on connection timeout
retry = 5

Configuration template can also be found here

Contributing

To build project please clone the repo

git clone git@github.com:mersinvald/batch_resolve.git

And run cagro build

cd batch_resolve
cargo build

batch_resolve can be build with stable rust

Please file an issue if you have any improvement suggestion or bug report.

Pull Requests are welcome also!

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgement

If you feel that this work is worth something and that it saved your time you can give me a cup of coffee :)

GitHub Stars

24

LAST COMMIT

2yrs ago

MAINTAINERS

1

CONTRIBUTORS

3

OPEN ISSUES

4

OPEN PRs

0
VersionTagPublished
0.3.7
3yrs ago
0.3.5
5yrs ago
0.3.4
5yrs ago
0.3.3
5yrs ago
No alternatives found
No tutorials found
Add a tutorial