作为测试我对 DNS 的一些想法的一种方式,我编写了一个非常简单的服务器,它基本上通过响应键值对来模拟类似 DNS 的行为。
我可以很容易地用 C 语言编写一个客户端到这个服务器,它可能会接受一个主机名作为参数并打印出一个 IP(或类似的东西)
我真正的问题是在 linux 场景中,哪段代码最终负责查找。这个程序是如何运作的?用自定义的“玩具”客户端(当然是在虚拟机中)覆盖这个程序会很简单吗?
当然,这都是理论上的,我没有在虚拟机之外使用它的计划,更重要的是,我不想实现默认的 DNS 协议(所以只需将 DNS 服务器设置设置为 localhost 或 127.0.0.1对我没用)
关于我想实现的行为类型的一些示例代码(伪)
int main(int argc, char** argv){
if(strcmp(argv[0], "localhost") == 0){
printf("127.0.0.1");
}
return 0;
}