#dns-resolver #dns-query #dns-client #batch #dns-records #tokio #asynchronous

应用 batch_resolve_cli

基于 Tokio 和 TRust-DNS 构建的快速异步批处理 DNS 解析器

13 个版本

使用旧的 Rust 2015

0.3.7 2019 年 11 月 27 日
0.3.5 2017 年 5 月 10 日
0.3.3 2017 年 4 月 30 日
0.2.0 2017 年 4 月 4 日
0.1.5 2017 年 3 月 25 日

#18 in #dns-client

每月 43 次下载

MIT 许可证

45KB
1K SLoC

Crates.io Gitter Donate

此页在 俄语

批处理解析

快速异步 DNS 解析器

安装

发行版软件包

您可以在 版本列表 中找到为 x86_64 预构建的 debrpm 软件包

Arch Linux 用户可以从 AUR 安装软件包 这里

软件包将配置文件安装到 /etc/batch_resolve.toml

静态二进制文件

每个版本的二进制文件都可以在 版本列表 中找到。只需将其放置在您的 PATH 中的一个目录中(例如 /usr/bin)

从 crates.io 安装

如果您已安装 Rust 工具包,您可以使用以下命令安装 batch_resolve

cargo install batch_resolve_cli

用法

输入和输出格式是用换行符分隔的列表。考虑以下输入 domains.txt

google.com
rust-lang.org
mozilla.org

解析所有 A 记录

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

解析 AAAAA 记录

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

配置

默认情况下,batch_resolve 使用 Google DNS 服务器 8.8.8.88.8.4.4,并在连接超时时重试 10 次。这些和每秒查询数参数可以在配置文件中更改。

配置文件可以放置在以下位置(优先级递减)

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

配置包括 DNS 服务器、每秒查询数和失败重试次数

# 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

配置模板也可以在此处找到 这里

贡献

请克隆存储库以构建项目

git clone [email protected]:mersinvald/batch_resolve.git

然后运行 cargo build

cd batch_resolve
cargo build

batch_resolve 可以使用稳定版本的 Rust 进行构建

如果您有任何改进建议或错误报告,请提交问题。

欢迎提交 Pull Requests!

许可协议

本项目采用 MIT 许可协议 - 详细内容请参阅 LICENSE.md 文件

致谢

捐赠

如果您觉得这项工作有价值,并且它为您节省了时间,您可以给我一杯咖啡:)

依赖项

~14–21MB
~293K SLoC