9

我有一个 linux 服务器,有一个 ad-hoc 无线网络供客户端连接。连接后,无论用户输入什么 URL,我都希望用户始终被重定向到它自己的 Web 服务器。大型解决方案是设置一个完整的 DNS 服务器(使用 BIND 或等效的),但这似乎有点矫枉过正。我所需要的只是一个简单的程序,它可以监听任何 DNS 请求并始终使用相同的 IP 地址进行响应。

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

4

4 回答 4

10

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

对于 C,请查看:

于 2012-06-14T16:22:19.917 回答
7

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

于 2012-06-14T16:44:23.550 回答
2

我在逆向恶意软件时使用了 fakedns.py。对于您的情况,它可能太有限了。

于 2012-06-14T16:41:03.310 回答
2

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

我认为代码很干净,虽然我没有进行单元测试:-(我用 dig 测试了它,花了大约一周的时间来理解 DNS 协议 + 实现 + 文档。

如果有人想扩展它,我想这不会很困难。因为我认为它只支持逆向查询,正如练习中所要求的那样。

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

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

于 2014-06-27T07:35:47.157 回答