只是更新了我的帖子,以澄清我使用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?
任何帮助将不胜感激。
答案 0 :(得分:1)
ldd `which nsupdate` |grep dns
libdns.so.81 => /usr/lib64/libdns.so.81 (0x000000348b000000)
rpm -qf /usr/lib64/libdns.so.81
bind-libs-9.8.2-0.62.rc1.el6_9.5.x86_64
在CentOS上,您需要安装bind-devel
以获得bind-libs
的头文件。其他发行版可能会将它们打包成稍有不同的名称。