开发基本的DNS服务器(在C#中)

时间:2011-01-11 13:41:21

标签: c# dns udp

我正在为自己的目的开发一个非常基本的DNS服务器。我理解它的方式,DNS服务器接收包含所请求域名的UDP数据包,并以某种标准格式返回相应的IP。

有一个standard library用于从/向二进制格式读取/写入UDP数据包。但是,在哪里可以找到用于序列化/反序列化DNS请求/响应的C#库?

3 个答案:

答案 0 :(得分:17)

开源ARSoft.Tools.Net库包含DNS服务器组件(请参阅documentation)。

您可以直接使用此库,或只使用源作为构建您自己的DNS请求序列化程序的起点。

答案 1 :(得分:3)

据我所知,我找不到一个处理DNS数据包序列化/反序列化的C#库,这意味着你可能需要自己动手。

编辑:我在Code Project上遇到了这个网络数据包嗅探器项目,它可能有你需要的东西。声称能够解析TCP / UDP / DNS

我确实找到了这个非常有用的TCP/IP网站,该网站有一套非常全面的网页描述DNS packet types,包括general message format

虽然可以从previous SO question获得一些额外的帮助。

答案 2 :(得分:3)

如果你查看维基百科,你会找到所有关于dns协议的RFC的列表,我发现rfc是实现网络协议的最佳方式!

现在dns协议有相当多的rfc,所以我不知道这是读取协议的最佳方式,但是你得到了至少所需的所有信息。

http://en.wikipedia.org/wiki/Domain_Name_System#Internet_standards