【发布时间】:2021-12-11 21:12:50
【问题描述】:
我希望我的 Rust 程序告诉我我当前在 Linux 机器上的 DNS 服务器是什么。我想了几个选择:
- 对
example.com进行DNS 查询并检查哪个响应。我认为这需要对 DNS 响应进行逐字节解析。 - 在 Rust 程序中运行和解析
cat /etc/resolv.conf或nmcli命令,但这些是特定于发行版和特定于 Linux 配置的。 - 运行一些收集系统信息的板条箱,但我找不到包含 DNS 设置的板条箱
- 或者只是运行并解析
nslookup example.com,这似乎最简单,但并不那么优雅。
这里最好的解决方案是什么?也许我错过了一些明显的解决方案,或者已经有一个板条箱可以做到这一点?
【问题讨论】:
-
对于“系统当前配置的 DNS 服务器是什么”的问题,并不总是有一个明确的答案;例如在 macOS 上,不同的网络接口可以配置不同的 DNS 服务器。您能否详细介绍一下您的用例?这将有助于缩小正确答案的范围。
-
谢谢@Coder-256,我对macOS一无所知。我正在使用 Linux 的
nfqueue处理 DNS 流量,我需要知道 IP 地址来设置队列。我当然可以手动完成,但我想要自动检测。现在我可以意识到,使用 nfqueues 我被锁定在 Linux 中,所以我不需要与操作系统无关的解决方案。已编辑的问题。