【发布时间】:2019-05-02 13:26:03
【问题描述】:
刚刚更新了我的帖子以澄清我使用 Bind9/命名 DNS。我找到了库,但大多数都实现了自己的 DNS,所以我不能使用它们。 我想做一个 c++ 程序(在 linux/debian 上运行)来使用带有新记录的 bind9 更新本地 DNS,然后传播信息,以便其他节点可以更新他们的本地 DNS。 实际上我有一个解决方案,但我想知道是否有更合适的方法(例如使用一些库),然后创建新类型的记录而不仅仅是 NAPTR。
我有包含各种信息(服务/域)的消息,并且我已经在使用这些信息来创建 NAPTR 记录,但是该方法非常难看。我将我需要的所有 nsupdate 命令写入一个 txt 文件,例如:
std::ofstream nsupdateCommand("/tmp/nsupdate.txt", std::ofstream::out | std::ofstream::trunc);
nsupdateCommand << "update add" << enumName << "." << zone << ". "<< ttl << " NAPTR ";
[...]
nsupdateCommand << "send";
nsupdateCommand.close();
system("nsupdate -l -v /tmp/nsupdate.txt")
我想知道是否有更好的方法在 c++ 中更新 DNS,可能使用套接字或库?
任何帮助将不胜感激。
【问题讨论】:
-
查看您选择的语言的 DNS 库:一个好的库应该为您提供与 nsupdate 相同的功能,它只是创建一个适当的 DNS 数据包以发送到权威名称服务器,因此库也可以这样做。
-
我找到了一些,但我不知道该使用哪一个,因为我根本不熟悉库。而且大多数使用的是 C 而不是 C++。