非常简单的DNS服务器

我有一个Linux服务器有一个特设的无线networking供客户端连接。 一旦连接,我希望用户总是被redirect到它自己的Web服务器,不pipe他们input什么URL。大的解决scheme是build立一个完整的DNS服务器(BIND或同等),但似乎是矫枉过正。 我所需要的只是一个简单的程序,它将侦听任何DNS请求,并始终使用相同的IP地址进行响应。

我四处寻找,但似乎无法find一个。 最好用C或Perl编写,因为我不想安装任何其他的脚本语言。

Solutions Collecting From Web of "非常简单的DNS服务器"

使用Net :: DNS :: Nameserver并编写自己的回复处理程序。

对于C,请看:

  • 如何在C / C ++中构建一个自定义的简单DNS服务器
  • 在C中创建自定义DNS名称服务器

我会建议使用dnsmasq 。 它比你绝对需要的功能更全面,但是它写得很好,体积小,易于安装,你需要给它的唯一配置是--address='/#/1.2.3.4'来告诉它用地址1.2.3.4来回答所有查询(不符合其他规则)。 dnsmasq是众所周知和维护的,可能是比Net :: DNS :: Nameserver更强大的服务器。

正如我在其他相关问题中回答的,我用C ++编写了一个基本的DNS服务器,用于BSD许可下的面试。

我认为代码很干净,虽然我没有做单元测试:-(我用dig测试过,大约花了一个星期了解DNS协议+实现+文档。

如果有人想要延长它,我想这不会很困难。 因为我认为它只支持反向查询,正如在练习中提到的那样。

代码可以在这里找到: http : //code.google.com/p/dns-server/

它被迁移到: https : //github.com/tomasorti/dns-server

反转恶意软件时,我使用了fakedns.py 。 这可能对你的情况太有限了。